vue笔记(七)组件的生命周期

hooks:钩子函数;在某个时间点运行的函数。

实例被创建:在new Vue或者<comp />情况下

  beforeCreate: 不能获取this.xx; 还没有注入,

注入:data,props,methods, computed...提取到组件实例上,

  created:在生成虚拟dom前,

  createed多用来异步获取数据:异步获取数据完成后,挂载完成后,数据变动,触发beforeUpdate钩子,重新渲染,updated

  那么,会不会异步获取数据非常快,组件创建的很慢,数据获取成功早于组件创建完,而直接用获取的数据作为data,不需要经过重新渲染这一步呢?答案是不会的。因为这是异步的,放到事件队列中,等同步代码都执行完毕,才回去事件队列中拿来执行异步代码。

编译生成虚拟dom树:查找顺序:render--->template---->el;将template或el编译成render函数。

  beforeMonunt: 在生成真实dom节点前,不能用refs

挂载

  mounted:有真实dom,可以使用refs

已挂载:

  beforeUpdate:拿ref元素,拿到的还是渲染之前的,但数据是更新的。

数据变动,响应式,重新渲染:生成虚拟dom树,对比新旧两棵树的差异,将差异应用到真实的dom上。完成渲染

  updated: 获取的是最新的ref元素
  beforeDestroy:

组件在页面上销毁:比如v-if条件是假,也比如当前在首页,点击菜单文章,则对应的首页组件销毁。

  destroyed:常用在组件销毁之后清除该组件上的定时器。