在 vue js 中跳转相同的路由不起作用

时间:2021-05-15 12:10:38

标签: javascript vue.js

第一个链接是 http://127.0.0.1:8000/subkategoriya/23 我想跳过这条路线,但只会改变参数,如下所示:http://127.0.0.1:8000/subkategoriya/24

<li v-for="subcategory in subcategories"  :key="subcategory.id">
  <router-link 
    :to="{name: 'subcatprods', params:{ id:subcategory.id }}" 
    @click="changed">
      {{subcategory.category_tm}}
  </router-link>
</li>
methods: {
  changed() {
    // update
  }
}

如何在此方法 changed() 中编码?

1 个答案:

答案 0 :(得分:0)

这个问题是因为重复使用了相同的组件,这是出于性能原因。您可以通过两种方式解决此问题。通过查看参数更改的路由或连接到路由更新。

这是一个对道具更改和更新显示消息做出反应的示例。点击链接查看,可以在手表中注释掉更新,查看更新失败。 http://jsfiddle.net/9k7hdwse/

来自文档:

export default {
    watch: {
        $route(to, from) {
            // do update
        }
    }
}

或者您可以使用beforeRouteUpdate

export default {
    beforeRouteUpdate(to, from, next) {
        // do update
        next();
    }
}

可在此处找到更多信息:https://router.vuejs.org/guide/essentials/dynamic-matching.html#reacting-to-params-changes