(1)初始化级阶段:
beforeCreate 获取不到数据,没有真实DOM created 获取到数据,没有真实DOM beforeMount 获取到数据,真实DOM马上生成 mounted 获取到数据,真实DOM生成(2)运行阶段:
beforeUpdate 数据更新时调用,获取到的是更新之前的数据 Updated 数据更新是调动,获取到的是更新之后的数据(3)销毁阶段:
beforeDestroy 销毁前,一般在这里做一些善后工作,例如清除计时器、清除非 指令绑定的事件等等 destroyed 已经销毁了,生命周期结束了 停止监听当组件在 <keep-alive> 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。
(1)全局路由钩子:
//全局的前置路由守卫 router.beforeEach((to,from,next) => { //会在任意路由跳转前执行,next一定要记得执行,不然路由不能跳转了 console.log("beforeEach") console.log(to,from) next() }) //全局后置路由守卫 router.afterEach((to,from) => { //会在任意路由跳转后执行 console.log("afterEach") })(2)单个路由钩子:
只有beforeEnter,在进入前执行,to参数就是当前路由 routes:[ { path:'/foo', component:Foo, beforeEnter:(to,from,next) => { //....... } } ](3)路由组件钩子:
beforeRouteEnter(to,from,next){ //在渲染该组件的对应路由被 confirm 前调用 //不能 获取组件实例 "this" //因为当守卫执行前,组件实例还没被创建 }, beforeRouteUpdate(to,from.next){ //在当前路由改变,但是该组件被复用时调用 //举例来说,对于一个带有动态参数的路径,/foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候, //由于会渲染同样的Foo 组件,因此组件实例会被复用,而这个钩子就会在这个情况下被调用 //可以访问组件实例 "this" }, beforeRouteLeave(to,from,next){ //导航离开该组件的对应路由时调用 //可以访问组件实例 "this" }