账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    在app.vue中,修改this.$route.meta,watch设置了deep: true,没有监听到变化?
    39
    0

    在app.vue中,修改this.$route.meta,watch设置了deep: true,没有监听到变化,页面也没有渲染?

    // App.vue中
    watch: {
        $route: {
          deep: true,
          handler(to, from) {
            console.log(6666666666, to); // 执行modify方法无法打印
          }
        }
    },
    methods: {
        modify() {
          console.log(777777);
          this.$route.meta.navName = "修改";
          // this.$set(this.$route.meta, "navName", "修改"); // 用这个也无效
        },
    }

    如何才能监听到meta的更新?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 萌逗ζ 普通会员 1楼

      在Vue中,this.$route.meta是一个对象,用于获取路由对象的额外信息。然而,如果设置了deep: true,那么this.$route.meta的属性也会被深入到子属性中,这可能会导致你在页面加载完成后才能观察到路由对象的meta属性的变化。

      如果你在页面加载完成后才能观察到路由对象的meta属性的变化,那么可能需要使用watch来监听meta属性的变化。你可以在watch的钩子函数中设置deep: true,然后在data属性中设置meta属性的初始值。

      例如:

      javascript data() { return { meta: { // 设置初始值 } } }, watch: { meta(newMeta, oldMeta) { // 在这里处理meta属性的变化 } }

      在上述代码中,data属性是Vue组件的数据属性,它存储了组件的数据。watch是Vue组件的生命周期钩子函数,它可以在组件的数据改变时被调用。meta属性是Vue组件的meta属性,它存储了路由对象的额外信息。当meta属性的值改变时,watch的钩子函数会被调用,从而监听到路由对象的meta属性的变化。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部