在DOM更改之前使用vue-router更改路由时发生火灾事件?

时间:2018-09-27 16:27:07

标签: vue.js vue-router vue-events

我对Vue很陌生,希望这不是一个非常愚蠢的问题:)

在{strong> DOM结构更改后,beforeDestroy被解雇。

我尝试使用beforeUpdateupdated事件,但似乎在DOM更改之前都没有触发。

在线复制:https://jsfiddle.net/p2c3b10t/18/(检查控制台)

1 个答案:

答案 0 :(得分:2)

使用Vue Router处理路由时,不要依赖lifecycle hooks,而应使用navigation guards。这些警卫人员会进入路线导航过程,可以是globalper-routein-component

在这种情况下,我们正在寻找beforeRouteLeave组件内防护。

beforeRouteLeave (to, from, next) {
  // called when the route that renders this component is about to
  // be navigated away from.
  // has access to `this` component instance.
}

在此后卫中,我们可以访问tofrom,然后致电next

export type NavigationGuard = (
  to: Route,
  from: Route,
  next: (to?: RawLocation | false | ((vm: Vue) => any) | void) => void
) => any
  • to是要导航到的目标路线。

  • from是当前 路线正在导航。

  • next是解决钩子必须调用的函数

在此防护措施中执行逻辑之后,必须调用next()来解决该钩子。


Revised JSFiddle