当前位置: 首页 > news >正文

使用watch监听route对象的变化

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

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

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

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

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

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

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

//获取路由
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.dtcms.com/a/46496.html

相关文章:

  • 【面试题】高并发场景下如何实现积分排行榜
  • R 语言科研绘图 --- 箱线图-汇总
  • 配置后端验证功能之validation
  • C++基础语法9——函数结构
  • Kotlin 5种单例模式
  • 了解什么是红黑树
  • 通过查询hive的元数据库中的表分区清单,拼写出来删除表分区的sql脚本
  • uniapp 中引入使用uView UI
  • PH热榜 | 2025-03-02
  • Sparsely-Gated Mixture-of-Experts Layer (MoE)论文解读与Pytorch代码实现
  • 大数据-236 离线数仓 - 会员活跃度 WDS 与 ADS 导出到 MySQL 与 广告业务 需求分析
  • 开启mysql的binlog日志
  • 【网络安全 | 渗透测试】GraphQL精讲一:基础知识
  • 高频 SQL 50 题(基础版)_1174. 即时食物配送 II
  • 随机播放音乐 伪随机
  • tin这个单词怎么记
  • 【沙漠之心:揭秘尘封奇迹的终极之旅】
  • 监督学习单模型—线性模型—LASSO回归、Ridge回归
  • 网站内容更新后百度排名下降怎么办?有效策略有哪些?
  • 【计算机网络入门】初学计算机网络(六)
  • anaconda 环境搭建流程
  • Minio搭建并在SpringBoot中使用完成用户头像的上传
  • RISC-V汇编学习(二)—— 汇编语法
  • 《OpenCV》—— dlib库
  • android 资源selector写法注意
  • vscode远程连接ubuntu/Linux(虚拟机同样适用)
  • GitLab Pages 托管静态网站
  • 商城系统单商户开源版源码
  • 电机控制从入门到吹牛-FOC 坐标变换
  • 【每日学点HarmnoyOS Next知识】web加载pdf、Toggle禁用、Grid多次渲染问题、Web判断是否存在title、 List侧滑栏关闭