我对Vue很陌生,希望这不是一个非常愚蠢的问题:)
在{strong> DOM结构更改后,beforeDestroy
被解雇。
我尝试使用beforeUpdate
和updated
事件,但似乎在DOM更改之前都没有触发。
在线复制:https://jsfiddle.net/p2c3b10t/18/(检查控制台)
答案 0 :(得分:2)
使用Vue Router处理路由时,不要依赖lifecycle hooks,而应使用navigation guards。这些警卫人员会进入路线导航过程,可以是global,per-route或in-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.
}
在此后卫中,我们可以访问to
和from
,然后致电next
。
export type NavigationGuard = (
to: Route,
from: Route,
next: (to?: RawLocation | false | ((vm: Vue) => any) | void) => void
) => any
to
是要导航到的目标路线。
from
是当前
路线正在导航。
next
是解决钩子必须调用的函数
在此防护措施中执行逻辑之后,必须调用next()
来解决该钩子。