vue2.0生命周期的理解(整理)

来自官方的生命周期图

image.png

关于生命周期钩子

vue2.0 描述
beforeCreate 组件实例未创建完成,在查看属性前,如data属性等
created 组件实例刚被创建完成,属性和事件已被绑定,但dom还未生成$el属性不存在
beforeMount 模板编/译挂载前
mounted 模板编译/挂载后, vue的虚拟dom已经替换了真实dom
beforeUpdate 组件更新前,此钩子在数据发生改变后而vue的虚拟dom重新渲染前生效
updated 组件更新后
beforeDestory 组件销毁前,当vm.$destroy()被调用后组件开始销毁,此钩子在此函数调用后组件销毁前生效
destoryed 组件已被销毁

由此可知:

  • beforeCreate: data、event都未加载
  • created:data、event已经加载, 但$el(vue的虚拟dom节点)未生成为undefined
  • beforeMount: $el生成,但是未将真实的dom替换成$el
  • mounted: $el替换了真实的dom节点并插入到dom树中,所以触发mounted()时,可以获取到$el为真实的dom元素
image.png

网上收集的用法建议:

  • beforeCreate: 可以加loading事件,在加载实例时触发
  • created: 当组件创建完成(data和event已经绑定)需要的事件写这里,如: loading事件、异步请求也适合。
  • mounted: 组件已挂载(vue的虚拟dom已取代真实的dom),可以加一些需要监听的事件。
  • beforeDestroy: 可以加一些组件销毁的确认事件
  • destroyed: 通知后台组件被销毁(用户离开该组件)的事件。
  • nextTick : 更新数据后立即操作dom
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容