vue3 修改路由中的meta属性

有些时候可能需要在路由跳转前后修改meta里面的相关属性值,这个时候就需要使用钩子函数(路由守卫),钩子函数有全局钩子局部组件钩子函数以及路由配置里面的钩子函数 (这些也叫路由守卫)

1.全局钩子函数:beforeEach()

在Vue Router中,beforeEach是用于注册全局前置守卫的函数。它允许你在路由导航触发之前执行一些逻辑

代码

const router = useRouter();
router.beforeEach((to, from) => {
  // 监听路由变化之前的操作  注意:这里是全局的 不建议用全局的
  // to.matched.some(record => record.meta.requiresAuth)
  if(to.name === "当前路由"){
    const { type} = to.params || {};
    to.meta.title = “你想要修改的值”;
    to.meta = {};
  }
})

注意:beforeEach 函数是全局函数,每次跳转都会触发,所以请写好当前页面的判断,否则滥用全局函数可能导致后期不好维护

2.单个组件里面的钩子函数

  • beforeRouteUpdate(路由进入当前组件/页面之前或者更新前)
  • beforeRouteLeave(路由离开当前组件/页面后)
  • beforeRouteEnter(组件进入组件/页面前)

code:

<script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({
  beforeRouteEnter(to, from, next) {
    // console.log('beforeRouteEnter=====');
    //进入当前页面时的操作
    console.log('beforeRouteEnter beforeRouteEnter 进入')
    next();
  },
  beforeRouteLeave(to,from,next){
    console.log('beforeRouteLeaveleave leave 离开')
    next();
  }
});
</script>

注意:这几个路由守卫钩子函数不能写在setup 的脚本里面 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值