美文网首页
vue3 和 vue2 的生命周期有什么区别

vue3 和 vue2 的生命周期有什么区别

作者: 时间的溺水者 | 来源:发表于2022-05-10 22:50 被阅读0次

vue3生命周期

1、Options API 生命周期

Options API 生命周期类似vue2生命周期,其中beforeDestroy改为beforeUnmount,destroyed改为unmounted

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 改名
    beforeUnmount() {
        console.log('beforeUnmount')
    },
    // destroyed 改名
    unmounted() {
        console.log('unmounted')
    }
}

渲染时生命周期执行


image.png

更新生命周期


image.png

[图片上传中...(image.png-15c5a8-1652280368126-0)]

销毁生命周期

image.png
2、Composition API生命周期

在使用Composition API生命周期之前要先引入,例如:

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

然后在使用


export default {
    name: 'LifeCycles',

    props: {
        msg: String
    },
    // 等于 beforeCreate 和 created
    setup() {
        console.log('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')
        })
    }
}
</script>

渲染时生命周期

image.png

更新时生命周期

image.png

销毁时生命周期

image.png

如果Composition API生命周期和Options API 生命周期同时存在,都会执行,但是先执行Composition API生命周期

export default {
    name: 'LifeCycles',

    props: {
        msg: String
    },
    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 改名
    beforeUnmount() {
        console.log('beforeUnmount')
    },
    // destroyed 改名
    unmounted() {
        console.log('unmounted')
    },

        // 等于 beforeCreate 和 created
    setup() {
        console.log('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')
        })
    },
}

执行结果:


image.png

相关文章

网友评论

      本文标题:vue3 和 vue2 的生命周期有什么区别

      本文链接:https://www.haomeiwen.com/subject/lqbjurtx.html