• vue3的生命周期


    1.vue3生命周期官方流程图

    2.vue3中的选项式生命周期

    vue3中的选项式生命周期钩子基本与vue2中的大体相同,它们都是定义在 vue实例的对象参数中的函数,它们在vue中实例的生命周期的不同阶段被调用。生命周期函数钩子会在我们的实例挂载,更新,卸载等过程中被调用的函数

    以下是vue3中的主要选项式生命周期函数钩子:

    1. beforeCreate:在实例初始化之后、数据观测(data observer)和event/watcher事件配置之前被调用。
    2. created:在实例创建完成后被立即调用,此阶段完成了数据观测,但未挂载Dom,$el属性
    3. beforeMount:在挂载开始之前被调用,相关的render函数首次被调用。
    4. mounted:实例被挂载后调用,此时el被新创建的vm.$el替换。
    5. beforeUpdate:数据更新之前被调用,发生在虚拟DOM打重新渲染及打补丁之前。
    6. updated:由于数据更改导致的虚拟Dom重新渲染及打补丁,在这之后会调用该钩子。
    7. beforeUnmount:实例销毁之前调用。在这一步,实例仍然完全可用。
    8. unmountedVue实例销毁后调用。

    代码展示:

            

    1. // 通过配置项的形式使用生命周期构子
    2. beforeCreate() {
    3. console.log('beforeCreate')
    4. },
    5. created() {
    6. console.log('created')
    7. },
    8. beforeMount() {
    9. console.log('beforeMount')
    10. },
    11. mounted() {
    12. console.log('mounted')
    13. },
    14. beforeUpdate() {
    15. console.log('beforeUpdate')
    16. },
    17. updated() {
    18. console.log('updated')
    19. },
    20. beforeUnmount() {
    21. console.log('beforeUnmount')
    22. },
    23. unmounted() {
    24. console.log('unmounted')
    25. }

    以上例子定义了一个Vue实例,每一个生命周期钩子函数都会在相应的阶段执行并打印对应的生命周期钩子名称。这提供了在不同阶段进行定制化操作的可能,例如,我们可以在mounted生命周期钩子中进行DOM操作,在created生命周期钩子中进行数据的初始化等

    3.vue3中组件式生命周期

    vue3的组合式API有一套新生命周期钩子,与vue3中选项式生命周期函数钩子有着对应的关系。

    在Composition API中,组合式生命周期钩子有:

    1. onBeforeMount:对应Vue2中的beforeMount钩子,Vue实例挂载之前调用。

    2. onMounted:对应Vue2中的mounted钩子,Vue实例挂载完成后调用。

    3. onBeforeUpdate:对应Vue2中的beforeUpdate钩子,数据更新时调用,但在DOM更新前。

    4. onUpdated:对应Vue2中的updated钩子,数据更新后在DOM更新后调用。

    5. onBeforeUnmount:对应Vue2中的beforeDestroy钩子,Vue实例销毁前调用。

    6. onUnmounted:对应Vue2中的destroyed钩子,Vue实例销毁后调用。

    代码展示:

            

    1. import {ref,onBeforeMount,onMounted,onBeforeMount,onUpdated,onBeforeUnmount,onUnmounted} from 'vue'
    2. export default {
    3. setup() {
    4. const name = ref('Vue3');
    5. onBeforeMount(() => {
    6. console.log('onBeforeMount');
    7. });
    8. onMounted(() => {
    9. console.log('onMounted');
    10. });
    11. return {
    12. name
    13. };
    14. }
    15. }

    生命周期钩子的主要作用是在特定时点运行用户自定义的函数,这些函数可能包含数据获取、数据处理、状态修改等逻辑。利用这样的设计,开发者可以更好的控制代码执行的时机和逻辑。

    在组合式API中,这些生命周期钩子不再像Vue2那样作为组件选项存在,而是独立的函数。这使得我们可以把相关逻辑组合在一起,理解和复用更方便。

     4.vue3中选项式生命周期和组合式生命周期共存时的执行顺序

    在Vue3中,组合式API和选项式API可以共存,对于生命周期钩子,在二者同时使用的情况下,其执行顺序为:首先执行组合式API的生命周期钩子,然后执行选项式API的生命周期钩子

    比如在一个实体中,同时使用了组合式API的onMounted和选项式API的mounted,则执行顺序为先执行onMounted,然后执行mounted

    以下是一个简单的例子:

    1. import { onMounted } from 'vue'
    2. export default {
    3. mounted() {
    4. console.log('选项式API的mounted生命周期钩子')
    5. },
    6. setup() {
    7. onMounted(() => {
    8. console.log('组合式API的onMounted生命周期钩子')
    9. });
    10. }
    11. }

    控制台输出的结果应该是:

    '组合式API的onMounted生命周期钩子'
    '选项式API的mounted生命周期钩子'
     

    这就完成了检验生命周期钩子执行顺序的验证,首先是组合式API的onMounted,然后是选项式API的mounted。

     

  • 相关阅读:
    安卓Android_手机安装burp的https_CA证书
    初始Java SE中的main方法、注释以及标识符和关键字
    R 语言入门学习笔记:软件安装踩坑记录——删除所有包以及彻底解决库包被安装到 C 盘用户目录下的问题,以及一些其他需要注意的点
    【银河麒麟V10】【桌面】火狐浏览器设置主页不生效
    C++复习笔记--C++常用注释规范
    顶顶顶顶顶顶顶顶顶顶顶顶顶顶是
    零代码+分布式微服务架构打造新一代一站式服务集成平台
    多测师肖sir_高级金牌讲师__接口测试之F12查看接口(2)
    CHATGPT说这个运算放大器是比较器,我说这是运放典型的同相比例放大器,一个光控电路分析
    C语言题解——倒置字符串(剑指Offer 第58题)
  • 原文地址:https://blog.csdn.net/weixin_63267832/article/details/132792427