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条件是假,也比如当前在首页,点击菜单文章,则对应的首页组件销毁。