Vue2和Vue3生命周期的对比

一、Vue生命周期

vue实例从创建到销毁的过程,具体来说就是vue实例从开始创建、初始化数据、编译模板、挂载Dom、渲染数据、更新数据、最后销毁这样的一个过程。


二、生命周期对比
Vue2生命周期Vue3生命周期
beforeCreatesetup()
createdsetup()
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeDestroyonBeforeUnmount
destroyedonUnmounted

以及特殊钩子

Vue2Vue 3
activateddeactivated
onActivatedonDeactivated
errorCapturedonErrorCaptured

三、生命周期钩子函数详解

1.beforeCreate

创建vue实例之前,此时vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。

2.created

创建实例成功,vue实例的数据对象data有了,挂载元素$el还没有。

3.beforeMount

渲染DOM之前,vue实例的挂载元素$el和data都初始化了,但还是虚拟的dom节点。

4.mounted

渲染DOM完成,vue实例挂载完成。

5.beforeUpdate

data更新时触发,重新渲染之前。

6.Update

data更新时触发,重新渲染完成。

7.beforeDestroy

组件销毁之前,在这一步,vue实例仍然完全可用。

8.destroyed

组件销毁完成,vue实例解除了事件监听以及和dom的绑定。


四、setup函数

setup 函数是在beforeCreate生命周期函数之前运行的

setup函数接收两个参数,props和context

注意:

  • 因为setup()是在beforeCreated之前,data、methods还未初始化,所以在setup中无法使用
  • setup函数只能是同步的

五、生命周期调用

1.Vue2

<script>
export default {
    name: 'App',
    beforeCreate() {
        console.log('beforeCreate')
    },
    created() {
        console.log('created')
    },
    beforeMount() {
        console.log('beforeMount')
    },
    mounted() {
        console.log('mounted')
    },
    beforeUpdate() {
        console.log('beforeUpdate')
    },
    updated() {
        console.log('updated')
    },
    beforeDestory() {
        console.log('beforeDestory')
    },
    destoryed() {
        console.log('destoryed')
    },
}
</script>

2.Vue3

<script>
import {onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted} from 'vue'

export default {
    name: 'App',
    setup() {
        onBeforeMount(() => {
            console.log('onBeforeMount')
        })
 
        onMounted(() => {
            console.log('onMounted')
        })

        onBeforeUpdate(() => {
            console.log('onBeforeUpdate')
        })

        onUpdated(() => {
            console.log('onUpdated')
        })

        onBeforeUnmount(() => {
            console.log('onBeforeUnmount')
        })

        onUnmounted(() => {
            console.log('onUnmounted')
        })

        return {}
  }
}
</script>
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值