美文网首页
详细的分析 Vue生命周期

详细的分析 Vue生命周期

作者: 秃头成就技术 | 来源:发表于2018-11-10 16:54 被阅读15次

Vue 的生命周期

生命周期执行的函数叫法有三种:

  • 生命周期钩子

  • 生命周期函数

  • 钩子函数

生命周期钩子概念:

在vue实例的生命周期的各个过程中 提供函数写逻辑代码 vue实例内部会在各对应的过程调起该函数


生命周期钩子执行顺序:

创建到挂载的过程:


1.  new Vue(); 

        ↓

2.  读取所有的生命周期钩子(没有调用)

        ↓

3.  执行beforeCreate生命周期钩子函数。(数据观测,事件,监听,都还不起作用)

        ↓

4.  读取所有的属性和方法,监听,计算属性  (此时Vue实例中的配置全部生效)

        ↓

5.  执行created 生命周期钩子函数             

  (请求后台数据,ajax请求之类的,在这个函数执行之后,就可以添加数据的监听)

        ↓

6.  判断是否有el配置项,如果没有,等待$mount()执行。如果不执行就终止生命周期(但之前的钩子还是有效的)

    // 也可以 进行动态挂载

    // vm.$mount('#app');  //等价于el配置项

        ↓

7.  渲染 template 模版

        ↓

8.  查找有没有对应的dom结构

        ↓

9.  有对应的dom结构,读取出来内部的dom,进行渲染 (意思就是说内部渲染出虚拟 dom结构)

        ↓

10.  执行beforeMount生命周期钩子函数 (挂载数据和渲染出真实 dom之前调用的函数)

        ↓

11.  内部渲染完成虚拟dom,并插入属性对应的数据 ,替换到el作用的真实dom中

        ↓

12.执行mounted生命周期钩子函数   

(此时可以操作dom结构了,因为真实dom已经被渲染完成,不建议使用document操作。应该使用$refs操作dom)

更新的过程(由于数据已经发生了变化,需要重新渲染dom结构。更新是虚拟dom结构的更新):


12. 当数据(data)发生变化后

        ↓

13.  执行beforeUpdate生命周期钩子函数(数据已经变化了,虚拟dom没有更新)

        ↓

14.  将数据更新渲染到dom中去  (虚拟dom的重新渲染改变数据 , 然后转变为 真实dom )

        ↓

15.  执行updated生命周期钩子函数  (此时真实dom已经完全修改,之后可以调用$nextTick())

销毁的过程:


  动态销毁 vm.$destroy() / 内部配置中调用this.$destroy()

            ↓

16.  执行beforeDestroy生命周期钩子函数 -- 将要移除事件监听(所有watch)

            ↓

17.  移除vue实例的事件监听,子组件的事件监听。

            ↓

18.  执行destroyed生命周期钩子函数

最后总结一下注意的点:

  • 当全部数据变化时

事件执行的顺序:watch -> beforeUpdate -> updated -> $nextTick()

此时要进行 dom的操作时:


只能在  updated / $nextTick() 函数中进行操作

因为watch / beforeUpdate 时,真实的dom还未进行渲染出来

  • 当某个数据变化时,执行dom操作

    methods: {

        changedata(){

            this.data = 'xxxxx';

            // 得到变化后的结果

            /*

            $nextTick()需要提供一个回调函数作为参数

            当指定数据(data)发生变化后,dom结构执行更新后

            回调函数再执行。

            必须写在数据变化后的第一行代码。中间除注释外不能有任何的代码

            */

            this.$nextTick(()=>{

                console.log('nextTick调用了');

            })

        }

    },

相关文章

  • vue中的生命周期

    解析vue生命周期 Vue生命周期简介Vue实例从创建到销毁的过程,就是生命周期。详细来说也就是从开始创建、初始化...

  • 详细的分析 Vue生命周期

    Vue 的生命周期 生命周期执行的函数叫法有三种: 生命周期钩子 生命周期函数 钩子函数 生命周期钩子概念: 在v...

  • 《三》、Vue核心——生命周期

    Vue 实例生命周期 1、生命周期流程图 2、vue 生命周期分析 (1)、初始化显示;     ① before...

  • 浅谈Vue的生命周期

    用Vue框架,熟悉它的生命周期可以让开发更好的进行。首先先看看官网的图,详细的给出了vue的生命周期: 它可以总共...

  • vue生命周期

    一 vue生命周期 Vue的生命周期:就是vue实例从创建到销毁的全过程 二 vue生命周期钩子 vue生命周期...

  • 0725-vue的学习(一)

    一、VUE问题 (主要) 1.谈谈你对VUE的了解,它的优点都有哪些? 2.详细说下你对VUE中生命周期的8个钩子...

  • vue生命周期

    vue生命周期详: vue生命周期详解图: vue生命周期详解代码展示:

  • Vue生命周期

    Vue生命周期详解 一、Vue生命周期 与 作用 (生命周期钩子就是生命周期函数) (1)Vue生命周期:每个Vu...

  • vue3较vue2的特别之处 - 生命周期

    vue2 生命周期 vue3 生命周期 将 Vue2 的生命周期钩子代码更新到 Vue3 参考地址:https:/...

  • 前端面试问题

    1.对于MVVM的理解 2.开发中常用的指令有哪些 3.请详细说下你对vue生命周期的理解 4.vue-route...

网友评论

      本文标题:详细的分析 Vue生命周期

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