Vue2和Vue3的生命周期一起执行的顺序

Vue3生命周期

主要代码

setup(){
  console.log('Vue3生命周期:setup');

  // 渲染
  onBeforeMount(()=>{
    console.log('Vue3生命周期:onBeforeMount');
  })
  onMounted(() => {
    console.log('Vue3生命周期:onMounted');
  })
  // 更新
  onBeforeUpdate(()=>{
    console.log('Vue3生命周期:onBeforeUpdate');
  })
  onUpdated(()=>{
    console.log('Vue3生命周期:onUpdated');
  })
  // 卸载
  onBeforeUnmount(() => {
    console.log('Vue3生命周期:onBeforeUnmount');
  })
  onUnmounted(() => {
    console.log('Vue3生命周期:onUnmounted');
  })

},

执行顺序

Vue3生命周期:setup
Vue3生命周期:onBeforeMount
Vue3生命周期:onMounted

总结

创建实例阶段

  • setup:创建实例前执行 (没有this)

渲染阶段

  • onBeforeMount:渲染组件DOM之前

  • onMounted:渲染组件DOM之后

更新阶段

  • onBeforeUpdate:组件更新前

  • onUpdated:组件更新后

销毁阶段

  • onBeforeUnmount:组件销毁前

  • onUnmounted:组件销毁后

Vue2和Vue3生命周期执行顺序

vue2生命周期和vue3生命周期一起使用的时候执行顺序是什么样的呢?
主要代码

const app = Vue.createApp({
  beforeCreate(){
    console.log('Vue2生命周期:beforeCreate');
  },
  created(){
    console.log('Vue2生命周期:created');
  },
  beforeMount(){
    console.log('Vue2生命周期:beForeMount');
  },
  mounted(){
    console.log('Vue2生命周期:mounted');
  },
  beforeUpdate(){
    console.log('Vue2生命周期:beforeUpdate');
  },
  updated(){
    console.log('Vue2生命周期:updated');
  },
  beforeDestory(){
    console.log('Vue2生命周期:beforeDeftory');
  },
  destoryed(){
    onsole.log('Vue2生命周期:destoryed');
  },


  setup(){
    console.log('Vue3生命周期:setup');

    // 渲染
    onBeforeMount(()=>{
      console.log('Vue3生命周期:onBeforeMount');
    })
    onMounted(() => {
      console.log('Vue3生命周期:onMounted');
    })
    // 更新
    onBeforeUpdate(()=>{
      console.log('Vue3生命周期:onBeforeUpdate');
    })
    onUpdated(()=>{
      console.log('Vue3生命周期:onUpdated');
    })
    // 卸载
    onBeforeUnmount(() => {
      console.log('Vue3生命周期:onBeforeUnmount');
    })
    onUnmounted(() => {
      console.log('Vue3生命周期:onUnmounted');
    })

  },

  data(){
    return {
      'myName': 'yq'
    }
  },

  template: `111
    `
})

执行顺序

Vue3生命周期:setup
Vue2生命周期:beforeCreate
Vue2生命周期:created
Vue3生命周期:onBeforeMount
Vue2生命周期:beForeMount
Vue3生命周期:onMounted
Vue2生命周期:mounted

总结

创建实例阶段

  • Vue3生命周期:setup

  • Vue2生命周期:beforeCreate

  • Vue2生命周期:created

    渲染阶段

  • Vue3生命周期:onBeforeMount

  • Vue2生命周期:beForeMount

  • Vue3生命周期:onMounted

  • Vue2生命周期:mounted

    更新阶段

  • Vue3生命周期:onBeforeUpdate

  • Vue2生命周期:beforeUpdate

  • Vue3生命周期:onUpdated

  • Vue2生命周期:updated

    销毁阶段

  • Vue3生命周期:onBeforeUnmount

  • Vue2生命周期:beforeUnmount

  • Vue3生命周期:onUnmounted

  • Vue2生命周期:unmounted

Vue2和Vue3父子组件生命周期执行顺序

主要代码

父组件

// 父组件
const app = Vue.createApp({
  beforeCreate(){
    console.log('Vue2生命周期:beforeCreate');
  },
  created(){
    console.log('Vue2生命周期:created');
  },
  beforeMount(){
    console.log('Vue2生命周期:beForeMount');
  },
  mounted(){
    console.log('Vue2生命周期:mounted');
  },
  beforeUpdate(){
    console.log('Vue2生命周期:beforeUpdate');
  },
  updated(){
    console.log('Vue2生命周期:updated');
  },
  beforeDestory(){
    console.log('Vue2生命周期:beforeDeftory');
  },
  destoryed(){
    onsole.log('Vue2生命周期:destoryed');
  },

  setup(){
    console.log('Vue3生命周期:setup');

    // 渲染
    onBeforeMount(()=>{
      console.log('Vue3生命周期:onBeforeMount');
    })
    onMounted(() => {
      console.log('Vue3生命周期:onMounted');
    })
    // 更新
    onBeforeUpdate(()=>{
      console.log('Vue3生命周期:onBeforeUpdate');
    })
    onUpdated(()=>{
      console.log('Vue3生命周期:onUpdated');
    })
    // 卸载
    onBeforeUnmount(() => {
      console.log('Vue3生命周期:onBeforeUnmount');
    })
    onUnmounted(() => {
      console.log('Vue3生命周期:onUnmounted');
    })

    return {
    }
  },
  template: `<child  /> `
})

child子组件

app.component('child', {
  template: `<div>child</div>`,
  beforeUnmount(){
    console.log('Vue2生命周期:beforeUnmount');
  },
  unmounted(){
    console.log('Vue2生命周期:unmounted');
  },
  setup(){
    console.log('Vue3生命周期:子组件setup');
    onBeforeMount(() => {
      console.log('Vue3生命周期:子组件onBeforeMount');
    })
    onMounted(() => {
      console.log('Vue3生命周期:子组件onMounted');
    })
    onBeforeUnmount(()=>{
      console.log('Vue3生命周期:onBeforeUnmount');
    })
    onUnmounted(() => {
      console.log('Vue3生命周期:onUnmounted');
    })
  }
})

执行顺序

Vue3生命周期:setup
Vue2生命周期:beforeCreate
Vue2生命周期:created
Vue3生命周期:onBeforeMount
Vue2生命周期:beForeMount
Vue3生命周期:子组件setup
Vue3生命周期:子组件onBeforeMount
Vue3生命周期:子组件onMounted
Vue3生命周期:onMounted
Vue2生命周期:mounted

总结

同一个阶段的生命周期Vue3先执行,后执行vue2生命周期,然后再执行下一个阶段的生命周期。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值