美文网首页
Vue动态路由的坑点

Vue动态路由的坑点

作者: 被代码耽误的裁缝 | 来源:发表于2022-07-19 17:22 被阅读0次

    对于动态路由/user/:name,组件为 User

    操作 1:从其他页面跳转到/user/duke
    操作 2:从/user/duke跳转到/user/lemon
    操作 3:从user/lemon跳转到/user/duke

    操作 2 和 3 时组件User会被复用,组件的生命周期函数都不会被触发,这就意味着我们无法修改组件的状态及页面视图,Vue 官方提供了两种方法去监听route的变化

    方法 1:使用watch监听

    watch: {
        $route(to, from) {
          console.log("to =>", to);
          console.log("from =>", from);
          this.user = to.params.name;
          // 对路由变化作出响应...
        }
      },
    

    方法 2:使用路由守卫

    beforeRouteUpdate(to, from, next) {
        // react to route changes...
        // don't forget to call next()
      }
    

    这两种方法效果其实是一样的,只会在操作 2 和 3 中触发,在操作 1 中无法触发。

    方法 3:使用生命周期补全方法 1 | 2
    操作 1 会触发挂载钩子函数,所以我们可以mounted+方法 1 | 2 覆盖操作 1、2、3 的场景

    相关文章

      网友评论

          本文标题:Vue动态路由的坑点

          本文链接:https://www.haomeiwen.com/subject/nluzmrtx.html