是否可以从Vue路由器获取触发路由更改的点击元素



我有一个按钮,可以在Vue应用程序中触发路由更改。我希望按钮元素在组件的$route对象中作为";事件目标";路线更改的方式(类似于点击事件中的event.target(。

这可能吗?

如果没有,获取路线更改原因的最佳方法是什么?

您正在寻找导航卫士。有

  • 每条路线上调用的全球导航卫士beforeEnter/resolve/leave/after取决于您的防护类型已使用
  • 在您的路由器文件,在每个路由的声明中
  • 在组件中组件内部使用的防护装置

您可以在组件内防护beforeRouteLeave(to, from)中获取导致组件中路由更改的特定按钮。该特定防护装置可以访问具有所有道具和反应状态(包括按钮参考(的组件的this


根据文档,这就是每个警卫在导航动作流中的下落:

  • 导航已触发
  • 调用已停用组件中的beforeRouteLeave防护
  • 呼叫全局beforeEach警卫
  • 调用重用组件中的beforeRouteUpdate防护
  • 在路由配置中调用beforeEnter
  • 解析异步路由组件
  • 调用激活组件中的beforeRouteEnter
  • 呼叫全局beforeResolve警卫
  • 导航已确认
  • 调用全局afterEach钩子
  • DOM更新已触发
  • 在带有实例化实例的beforeRouteEnter防护程序中,调用回调传递给next

最新更新