• vue的生命周期的相关问题


    1、vue的生命周期那几个?每一个生命周期的特点,可以做什么?

      vue的生命周期就是vue实例从创建到销毁的过程就是生命周期,即指从创建、初始化数据、编译模板、挂载Dom到渲染、更新到渲染、销毁等一系列的过程。主要分为8个阶段:创建前后、载入前后、更新前后、销毁前后,以及一些特殊场景的生命周期。

    生命周期描述作用
    beforeCreate创建前这个时候data中的数据,还未定义,所以不能使用
    created创建后最早开始使用 data和methods中数据的钩子函数
    beforeMount挂载前指令已经解析完毕内存中已经生成dom树,但是尚未挂载到页面中去,此时页面还是旧的。
    mounted挂载后dom已经渲染完毕,此时页面和内存中都是最新的数据,最早可以操作DOM元素钩子函数
    beforeUpdate更新前当视图层的数据发生改变会执行这个钩子 , 内存更新,但是DOM节点还未更新,数据没有与页面同步
    updated更新后数据更新完成以后触发的方法,DOM节点已经更新
    beforeDestroy销毁前data和methods中的数据此时还是可以使用的,可以做一些释放内存的操作
    destroyed销毁后组件已经全部销毁,Vue实例已经被销毁,Vue中的任何数据都不可用
    其他三个生命周期描述
    activated被 keep-alive 缓存的组件激活时调用。
    deactivated被 keep-alive 缓存的组件停用时调用。
    errorCaptured捕获一个来自子孙组件的错误时被调用

      用 keep-alive包裹的组件在切换时不会进行销毁,而是缓存到内存中并执行deactivated钩子函数,命中缓存渲染后会执行activated钩子函数

    Vue3.0中的生命周期做了一些改动:

    生命周期描述
    beforeCreate -> setup()开始创建组件之前,创建的是data和method
    created -> setup( )
    beforeMount -> onBeforeMount组件挂载到节点上之前执行的函数。
    mounted -> onMounted组件挂载到节点上之前执行的函数。
    beforeUpdate -> onBeforeUpdate组件更新之前执行的函数。
    Update - > onUpdated组件更新完成之后执行的函数
    beforeDestroy -> onBeforeUnmount组件挂载到节点上之前执行的函数。
    destroyed -> onUnmounted组件卸载之前执行的函数。
    • vue的实例加载完成是在哪个声明周期完成呢?-----
      beforeCreate(创建前)
    • vue的dom挂载完成是在哪个声命周期里呢?-----mounted(挂载后)

    2、created 和 mounted 的区别?

    相同点:
      都能拿到实例对象的属性和方法,但是如果在mounted请求数据,有可能会导致页面闪动

    不同点:

      created 模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。这时候页面dom节点并未生成

      mounted 在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。

      created的触发时机要比mounted更早一些

    3、从A页面跳转到B页面执行了哪些生命周期?

    A页面-----------> beforeCreate
    A页面-----------> created
    A页面-----------> beforeMount
    A页面-----------> mounted
    B页面-----------> beforeCreate
    B页面-----------> created
    B页面-----------> beforeMount

    A页面-----------> beforeDestroy
    A页面-----------> destroyed

    B页面-----------> mounted

    在B页面beforeMount挂载前和挂载后mounted之间A页面才执行销毁前后的钩子函数

    4、一般在哪个生命周期请求异步数据?

      可以在created、beforeMount、mounted这三个钩子函数中进行调用,因为在这三个钩子函数中data已经创建,可以将服务端返回的数据进行赋值。
      建议在created钩子函数中请求数据,能更快获取服务端数据,减少页面加载时间,用户体验更好。
      SSR(服务端渲染)支持beforeMount、mounted钩子函数,放在created中有助于一致性

  • 相关阅读:
    python之文件操作
    金仓数据库 KingbaseGIS 使用手册(6.18. 线性参考函数)
    动态规划算法学习一:DP的重要知识点、矩阵连乘算法
    Hadoop原理,HDFS架构,MapReduce原理
    【MacOs系统-M2安装2022新版AWVS渗透工具】-保姆级安装教程
    解决 Failed to get nested archive for entry BOOT-INF/lib/xxx.jar
    打造千万级流量秒杀第二十八课 性能调优:如何使用 ab 命令和 pprof 分析性能?
    vscode软件上安装 Fitten Code插件及使用
    SPA项目之首页导航+左侧菜单
    大聪明教你学Java | Mysql 为何会引起锁表及其解决办法
  • 原文地址:https://blog.csdn.net/fangqi20170515/article/details/125964918