生命周期
beforeCreate
是new Vue()之后触发的第一个钩子,实例刚刚被创建,还没有初始化好data,methods。
在当前阶段data、methods、computed以及watch上的数据和方法都不能被访问。
created
在实例创建完成后发生,当前阶段实例的data和methods已经初始化,已经完成了数据观测,可以使用数据,更改数据。
在这里更改数据不会触发updated函数。
可以做一些初始数据的获取。
在当前阶段无法与Dom进行交互,如果非要想,可以通过vm.$nextTick来访问Dom。
beforeMount
发生在页面挂载之前,在这之前template模板已导入渲染函数编译。
已经完成模板的编译,还没有挂载到页面上。
而当前阶段虚拟Dom已经创建完成,即将开始渲染。
在此时也可以对数据进行更改,不会触发updated。
mounted
在挂载完成后发生,可以拿到页面渲染的内容。
在当前阶段,真实的Dom挂载完毕,数据完成双向绑定,可以访问到Dom节点,使用$refs属性对Dom进行操作。
beforeUpdate
数据被修改时调用。
发生在更新之前,也就是响应式数据发生更新,虚拟dom重新渲染之前被触发。
可以在当前阶段进行更改数据,不会造成重渲染。
数据更新,但是界面没有更新。
updated
发生在更新完成之后,当前阶段组件Dom已完成更新。
数据和界面都已更新。
要注意的是避免在此期间更改数据,因为这可能会导致无限循环的更新。
beforeDestroy
发生在实例销毁之前,在当前阶段实例完全可以被使用。
们可以在这时进行善后收尾工作,比如清除计时器。
destroyed
发生在实例销毁之后,这个时候只剩下了dom空壳。
组件已被拆解,数据绑定被卸除,监听被移出,子实例也统统被销毁,所有内容均不可用。