Vue生命周期

Vue实例的生命周期

1.什么是生命周期:从Vue实例创建,运行,到销毁期间,总盘随着各种各样的事件,这些事件,统称为生命周期!

2.生命周期钩子=生命周期函数=生命周期事件

3.主要的生命周期函数分类:

  • 创建期间的生命周期函数:

    1. beforeCreate:实例刚在内存中被创建出来,此时,还没有初始化好data和methods属性
    2. created:实例化已经在内存中创建OK,此时data和methods已经创建OK,此时还没有开始编译模板
    3. mounted:此时,已经将编译好的模板,挂载到了页面指定的容器中显示
  • 运行期间的生命周期函数:

    1. beforeUpdata:状态更新之前执行此函数,此时data中的状态值是最新的,但是界面上显示的数据还是旧的,因此此时还没有开始重新渲染DOM节点
    2. updataed:实力更新完毕之后调用此函数,此时data中的状态值和界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了
  • 销毁期间的生命周期函数:

    1. beforDestroy:是李小慧之前调用,在这一步,实例依然完全可用
    2. destroyed:Vue实例销毁后调用,调用后,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁

lifecycle

1.创建期间的生命周期函数

1.beforeCreate

//第一个生命周期函数,Vue对象实例化完全被创建出来后会执行他
beforeCreate() {
        console.log(this.msg);
        this.show()
      }
//data和methods中的数据都还没有,没初始化

image-20210309191115853

image-20210309191143472

2.created

调用methods中的方法,或操作data中的数据,最早只能在created函数中操作

created() {
        //第二个生命周期函数
        console.log(this.msg);
        this.show()
        //data和methods已经初始化好了
      }

image-20210309222543986

3.beforeMount

调用beforeMount的时候页面模板字符串还没有被替换

beforeMount() {
        //第三个生命周期
        console.log(document.getElementById('text'));
        //模板已经在内存中编译完成,但是尚未渲染页面
      }

image-20210309222529011

4.mounted

执行完mounted的时候,实例就完全创建好了,如果要通过某些插件操作页面上的DOM节点,最早要在mounted中进行

mounted() {
        //第四个生命周期
        console.log(document.getElementById('text'));
        //内存中的模板已经真实挂载到了页面中,页面已经渲染       
      }

image-20210309222911421

2.运行期间的生命周期函数

运行期间的生命周期函数会根据data数据的改变而改变,0次~n次

1.beforeUpdate

<input type="button" value='修改msg' @click='msg="no"'>
beforeUpdate() {
        //数据更新之前
        console.log('界面上的元素内容' + document.getElementById('text').innerHTML);
        console.log('data中的msg数据' + this.msg);
        //执行beforeUpdate,页面中显示的数据还是之前的,data中的数据已经改变
      }

image-20210309224037353

2.update

<input type="button" value='修改msg' @click='msg="no"'>
updated() {
        //数据跟新时
        console.log('界面上的元素内容' + document.getElementById('text').innerHTML);
        console.log('data中的msg数据' + this.msg);
        //updated事件执行的时候,页面和data数据已经保持同步,都是最新的
      }

image-20210309224505576

3.销毁期间的生命周期函数

当执行beforeDestroy钩子函数的时候,Vue实例就已经从运行阶段进入到销毁阶段;但是实例身上所有的data,methods,意义过滤器,指令…都处于可用状态,此时,还没有真正执行销毁的程序

当执行destroyed函数的时候,嘴贱已经被完全销毁了,此时组件总所有的data,methods,意义过滤器,指令…都已经不可用

最早可以使用Vue中的data和methods是在created周期中
最早可以操作页面dom元素是在mounted周期中


版权声明:本文为Dimuzero原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>