vue生命周期
vue生命周期
创建阶段
beforeCreate
- 表示刚初始化了一个
Vue空的实例对象,这时,这个对象身上只有默认的一些生命周期和默认的事件,其他的东西都未被创建
- 注意:在
beforeCreate生命周期函数执行的时候,data和methods中的数据都还没有初始化
created
- 在
created中的方法,data和methods中的数据都已经初始化
- 如果要调用methods中的方法,或者操作data中的数据,最早只能在created中操作
- 注意:在这个周期里面如果进行请求是可以改变数据并渲染,由于
DOM未挂载,请求过多或者占用时间过长会导致页面线上空白。
beforeMount
- 表示模板已经编译完成,但是,尚未把模板渲染到页面中,此时的页面还是原先的
- 但是数据的双向绑定还是显示{{}},这是因为Vue采用了Virtual DOM(虚拟Dom)技术。
mounted
- 表示内存中的模板已经真实挂在到了页面中,用户已经可以看到渲染好的页面了
- 注意:
mounted是实例创建期间的最后一个生命周期函数,当执行完mouted就表示实力已经被完全创建好了
- 一般请求会放在这个地方,因为这边请求改变数据之后刚好能渲染。
- 操作
dom,最早在mounted中
运行阶段
beforeUpdate
- 只要是页面数据改变了都会触发,数据更新之前,页面数据还是原来的数据,当你请求赋值一个数据的时候会执行这个周期,如果没有数据改变不执行。
updated
- 只要是页面数据改变了都会触发,数据更新完毕,页面的数据是更新完成的。
- beforeUpdate和updated要谨慎使用,因为页面更新数据的时候都会触发,在这里操作数据很影响性能和容易死循环。
销毁阶段
beforeDestroy
- 当执行
beforeDestroy时,实例身上所有的data和所有的methods,以及过滤器全部处于可用状态,此时,还未真正执行销毁过程
destroyed
- 组件已经被完全销毁,此时,组件中的所有的数据、方法、指令、过滤器等都已不可用了