vue.js - 单击事件路由器链接

标签 vue.js vue-router

在我的 Vue 2 应用程序中,我有一个菜单栏,其菜单项使用路由器链接。这些菜单项之一是“客户”,它将用户带到客户编辑器。现在,如果用户在客户编辑器中单击相同的“客户”菜单项,则不会发生任何事情。我认为这是因为文档中提到的这种行为:“在 HTML5 历史记录模式下,router-link 将拦截点击事件,以便浏览器不会尝试重新加载页面。”

现在,这是完全可以理解的,而且在大多数情况下,这就是我想要的行为。但实际上在这里我想要重新加载组件,回到干净的状态。或者更准确地说,对于某些事件的发生,我可以在客户编辑器中处理这些事件,以按照我的意愿进行设置。事实上,我以为会是这种情况,但是当我设置 watch 时,因此

    watch: {
      '$route' (to, from) {
        console.log("Route changed");
      }
    },

我没有看到任何记录到控制台的内容。可能是发生了一些我没有处理的事件,而 Vue 只是在重用该组件。但是我怎样才能阻止它这样做呢?

最佳答案

根据 this issue ,您可以添加一个 @click.native 绑定(bind)到当前的 router-link 并在那里重新初始化您的组件数据。

但一个快速而肮脏的解决方案是将一个唯一参数附加到您的路线,例如日期。检查这个fiddle

关于vue.js - 单击事件路由器链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48644676/

相关文章:

javascript - Vue-router 重载组件

javascript - JS OR 运算符不适用于 v-bind Vue.js

c# - iTextSharp pdf 中缺少 Font Awesome 图标

javascript - Vue如何将数据属性设置为当前路由名称的主体

javascript - 如何在 Vue 路由器中为除默认语言环境之外的所有语言环境添加 i18n 语言环境前缀?

vue.js - VueJS 路由器不加载组件

javascript - 如何让vue每天只显示一次弹出窗口

vue.js - Vuetify 组合框 - 如何禁用在 vuetify 的组合框中输入

vue.js - 如何在 vue-router 上重定向之前执行异步代码?

javascript - Vuejs 路由器无法访问任何组件