beforeCreate:刚刚创建组件,数据还没有挂载,意思是还拿不到data中的数据。
created:可以获取到data中的数据,也可以更改数据,这里更改数据不会触发updated函数
beforeMount:虚拟dom已经创建完成,马上就要渲染,这里更改数据不会触发updated函数
mounted:组件已经出现在页面上,数据及真实的dom都已经处理好了,事件已经挂载好了
beforeUpdate:当组件或实例的数据更改之后,会立即执行beforeUpdate,然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染,一般不做什么事儿
updated:当更新完成后,执行updated,数据已经更改完成,dom也重新render完成,可以操作更新后的虚拟dom
默认加载的时候先computed再watch,不执行methods;等触发某一事件后,则是:先methods再watch。
Props,methods,data和computed的初始化都是在beforeCreated和created之间完成的。
computed:计算属性是根据依赖关系进行缓存的计算,并且只在需要的时候进行更新。适用于重新计算比较费时不用重复数据计算的环境。
watch:watch属性是一个对象,键是需要观察的表达式,值是对应回调函数,回调函数得到的参数为新值和旧值。适用场景有输入值是否有效等。
总结:数据量大,需要缓存的时候用computed;每次都需要重新加载,不需要缓存的时候用methods。要在数据变化的同时进行异步操作或者比较大的开销,那么选择watch。watch只能操作当前组件中data中的属性。