使用watch监听route对象的变化

embedded/2025/3/5 0:07:44/

我们在vue项目中,有时候需要监听路由的变化,来做出一些操作,下面就是一些案例。

1、监听路由对象中的meta.title属性,来渲染tabs标签的高亮状态。

        情况说明:①我们在Aside.vue中,有一个菜单组件,点击菜单就能使得当前路由跳转到对应的路径。②我们在index.js文件中,给每个路径的路由都设置了一个meta属性,里面还有title,用来渲染要高亮的tabs标签。③我们在Tabs.js文件中,令tabs组件的activeName为当前路由的meta.title的值。

经过上述几步操作,这样就能实现我们点击的哪个菜单,哪个菜单对应的tab标签就能高亮显示。

但是有一个问题:此时跨页面了,导致路由变化时,不能及时给activeName重新赋值,这样就导致以下情况:

javascript">//获取路由
import {useRoute} from 'vue-router'
const route = useRoute();
//让当前菜单的路由,决定哪个tag标签高亮显示(问题所在:不能及时刷新数据)
const activeName = ref(route.meta.title)

        问题解决方案: 使用watch监听route对象的变化。

javascript">//获取路由
import {useRoute} from 'vue-router'
const route = useRoute();//导入watch函数,来监听某个属性,以便在其发生改变时,做出对应操作。
import {watch} from 'vue'//activeName:控制哪个tab标签高亮显示
const activeName = ref(null)//定义方法fetchActiveName(),用来给activeName赋值
const fetchActiveName = () => {activeName.value = route.meta.title;//令activeName的值为当前路由的meta.title的值//alert("页面变化,当前title:" + activeName.value)
}//组件创建时,初始化数据
fetchActiveName();//监听路由变化:路由发生变化时,让当前路由对应的tag标签高亮显示
watch(() => route.meta.title,//监听的数据:当前路由的meta.title() => {fetchActiveName();//监听的数据发生变化时,要进行的操作}
)

        完善后的效果:

总结:


http://www.ppmy.cn/embedded/169706.html

相关文章

类和对象(6)——Object类、内部类

目录 1. Object类 1.1 什么是Object类? 1.2 Object中的常用成员方法 1. toString方法 2. equals方法 3. hashCode方法 1.3 Object类与常见接口 1. Cloneable接口 #. clone方法 #. 浅拷贝与深拷贝 2. 比较接口 #. Comparable接口 #. Comparator接口 #.…

Java8面试

Java 8 有哪些新特性? 🐎Java 8五大神装特性🐎 Lambda表达式(魔法调料) 曼波觉得像速食魔法咒语!(๑✧◡✧๑) // 传统写法(像冗长菜谱) new Thread(new Runnable() {public void run() {Syst…

Qt:窗口

目录 菜单栏 QMenuBar 菜单添加快捷键 添加子菜单 添加分割线和添加图标 QMenuBar创建方式 工具栏 QToolBar 和菜单栏搭配 创建多个工具栏 状态栏 QStatusBar 状态栏中添加其他控件 浮动窗口 QDockWidget 对话框 对话框的内存释放问题 自定义对话框界面 模态对话…

QT异步编程之QtConcurrent

一、概述 1、QtConcurrent模块提供了一组便捷的函数,用于在不显示创建和管理线程的情况下实现并发编程。 2、它通过将任务提交给线程池来执行,从而避免了频繁创建和销毁线程带来的性能开销。 3、QtConcurrent非常适合处理需要并行执行的批量任务&…

Java 泛型(Generics)详解与使用

一、什么是 Java 泛型? 泛型(Generics)是 Java 1.5 引入的一项重要特性,主要用于 类型参数化,允许在类、接口和方法定义时使用 类型参数(Type Parameter),从而提高代码的复用性、类…

java2025热点面试题之springmvc

1. 请解释Spring MVC的工作原理。 答案: Spring MVC是一个基于Java的MVC框架,用于构建Web应用程序。其工作原理如下: 客户端发送请求到DispatcherServlet,它是Spring MVC的前端控制器。DispatcherServlet查询HandlerMapping&…

Spock框架:让单元测试更优雅的高效武器

📖 前言:为什么选择Spock? 在软件开发领域,单元测试是保证代码质量的基石。但传统的JUnit/TestNG测试框架在面对复杂测试场景时,往往会显得力不从心。Spock框架作为新一代测试框架的佼佼者,以其独特的BDD&…

基于SpringBoot+Vue的医院挂号管理系统+LW示例参考

系列文章目录 1.基于SSM的洗衣房管理系统原生微信小程序LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统LW参考示例 3.基于SpringBootVue的企业人事管理系统LW参考示例 4.基于SSM的高校实验室管理系统LW参考示例 5.基于SpringBoot的二手数码回收系统原生微信小程序LW参考示…