javascript - 重定向同一组件时不会调用 Vuejs 钩子(Hook)

标签 javascript vue.js vuejs2 vue-component vue-router

我必须在 Vuejs 项目中进行分页。两者处于同一水平并具有共同的组成部分。当我从 post/new 重定向到 post/edit/:id beforeMount 方法不会被调用。

redirect() {
    this.$router.push({path: `home/post/edit/${this.post.id}`})
  },

路线:

 {
      path: 'home',
      name: 'home',
      component: {
        render(c) {
          return c('router-view')
        }
      },
      children: [  
        {
          path: 'post/new',
          component: PostForm,
          name: 'Create',
          props: {readOnly: false}
        },
        {
          path: 'post/edit/:id',
          component: PostForm,
          name: 'Edit',
          props: {readOnly: false}
        },

      ]
    },

最佳答案

由于性能原因,PostForm 的实例被重用。这就是为什么 beforeMount 只被调用一次。

您应该将代码移至:

beforeRouteUpdate (to, from, next) {
    // the code you currently have in beforeMount
}

参见https://router.vuejs.org/guide/essentials/dynamic-matching.html#reacting-to-params-changes正如 Jbluehdorn 所建议的。

关于javascript - 重定向同一组件时不会调用 Vuejs 钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57856104/

相关文章:

javascript - JS 数组解构 - 它是如何给出这个输出的?

javascript - 包括以用户设备为条件的 JS 脚本

vue.js - 动态路由器链接

javascript - 如何使倒计时器函数可重用

vue.js - 如何在 Nuxt Vue Composition API 中正确使用 Vuex getters?

javascript - VueJS 读取 $root Ajax 从 router-view 中获取数据仅在直接导航到 url 时返回未定义

javascript - cordova文件异步检查写入

javascript - Vue.js 'v-bind:class' 不更新,即使模型更新

vue.js - 未捕获的引用错误 : VueRouter is not Defined

javascript - 为什么我的 js.erb 文件中没有工作链接