vue之生命周期与导航守卫

组件钩子函数:

beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destoryed

还有两个特殊的(使用keep-alive):activated、deactivated(不详述)

v2.5.0+新增: errorCaptured (暂时还不知道咋用)

路由守卫:

全局&路由独享:

beforeEach、beforeResolve(v2.5.0+新增)、afterEach ;beforeEnter(路由独享,类似beforeEach)

组件内:

beforeRouteEnter、beforeRouteUpdate (2.2 新增)、beforeRouteLeave

代码示例:

//Router定义

Vue.use(Router)

const router = new Router({
    ...
})

//导航守卫

router.beforeEach((to, from, next) => {
  console.log("导航前置守卫: beforeEach,");
  next();
})
router.afterEach((to, from) => {
  console.log("导航后置守卫: afterEach,");
}) 
router.beforeResolve ((to, from, next) => {
  console.log("导航解析守卫: beforeResolve,");
  next();
}) 

组件钩子:

export default {
  //钩子
  beforeCreate(){
    console.log("组件钩子: beforeCreate");
  },
  created(){
    console.log("组件钩子: created");
  },
  beforeMount(){
    console.log("组件钩子: beforeMount");
  },
  mounted(){
    console.log("组件钩子: mounted");
  },
  beforeUpdate(){
    console.log("组件钩子: beforeUpdate");
  },
  updated(){
    console.log("组件钩子: updated");
  },
  beforeDestroy(){
    console.log("组件钩子: beforeDestroy");
  },
  destoryed(){
    console.log("组件钩子: destoryed");
  },
  beforeRouteEnter (to, from, next) {
    console.log("组件内部守卫: beforeRouteEnter,");
    next()
  },
  beforeRouteUpdate (to, from, next) {
    console.log("组件内部守卫: beforeRouteUpdate,");
    next()
  },
  beforeRouteLeave (to, from, next) {
    console.log("组件内部守卫: beforeRouteLeave,");
    next()
  }
}

执行输出顺序:

    导航前置守卫: beforeEach
    组件内部守卫: beforeRouteEnter
    导航解析守卫: beforeResolve
    导航后置守卫: afterEach
    组件钩子: beforeCreate
    组件钩子: created
    组件钩子: beforeMount
    组件钩子: mounted
    //执行跳转
    组件内部守卫: beforeRouteLeave
    导航前置守卫: beforeEach
    导航解析守卫: beforeResolve
    导航后置守卫: afterEach
    组件钩子: beforeDestroy

 

转载于:https://www.cnblogs.com/fanlu/p/10825275.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值