vue生命周期

744 阅读2分钟

vue生命周期

Vue 实例生命周期

创建阶段

beforeCreate

  • 表示刚初始化了一个Vue空的实例对象,这时,这个对象身上只有默认的一些生命周期和默认的事件,其他的东西都未被创建
  • 注意:在beforeCreate生命周期函数执行的时候,datamethods中的数据都还没有初始化

created

  • created中的方法,datamethods中的数据都已经初始化
  • 如果要调用methods中的方法,或者操作data中的数据,最早只能在created中操作
  • 注意:在这个周期里面如果进行请求是可以改变数据并渲染,由于DOM未挂载,请求过多或者占用时间过长会导致页面线上空白。

beforeMount

  • 表示模板已经编译完成,但是,尚未把模板渲染到页面中,此时的页面还是原先的
  • 但是数据的双向绑定还是显示{{}},这是因为Vue采用了Virtual DOM(虚拟Dom)技术。

mounted

  • 表示内存中的模板已经真实挂在到了页面中,用户已经可以看到渲染好的页面了
  • 注意:mounted是实例创建期间的最后一个生命周期函数,当执行完mouted就表示实力已经被完全创建好了
  • 一般请求会放在这个地方,因为这边请求改变数据之后刚好能渲染。
  • 操作dom,最早在mounted

运行阶段

beforeUpdate

  • 只要是页面数据改变了都会触发,数据更新之前,页面数据还是原来的数据,当你请求赋值一个数据的时候会执行这个周期,如果没有数据改变不执行。

updated

  • 只要是页面数据改变了都会触发,数据更新完毕,页面的数据是更新完成的。
  • beforeUpdate和updated要谨慎使用,因为页面更新数据的时候都会触发,在这里操作数据很影响性能和容易死循环。

销毁阶段

beforeDestroy

  • 当执行beforeDestroy时,实例身上所有的data和所有的methods,以及过滤器全部处于可用状态,此时,还未真正执行销毁过程

destroyed

  • 组件已经被完全销毁,此时,组件中的所有的数据、方法、指令、过滤器等都已不可用了