vue生命周期以及watch、computed、methods的执行顺序
watch、computed、methods的执行顺序
● 默认加载情况
- 如果watch不加immediate:true属性(页面初加载的时候,不会执行watch,只有值变化后才执行),则只执行computed(在created执行?);
- 如果watch添加immediate:true属性(在beforeCreate后created前执行),则先执行watch、再执行computed;
● 触发某一事件后
先执行method,再watch,再computed
生命周期执行顺序
● 页面初试化时:
beforeCreate -> created -> beforeMount -> mounted
● 页面发生修改时:
beforeUpdate -> updated
● 页面销毁时:
beforeDestory -> destroyed
父子组建生命周期执行顺序
● 页面初始化时:
父beforeCreate -> 父created -> 父beforeMount -> 子beforeCreate -> 子created -> 子beforeMount -> 子mounted -> 父mounted
● 页面发生修改时:
beforeUpdate -> updated
父子组件的更新互不影响,只更新自己
● 页面销毁时:
父beforeDestory -> 子beforeDestory -> 子destoryed -> 父destoryed
销毁时子组件要先于父组件销毁
this.$nextTick在各生命周期的执行顺序
每个周期使用$nextTick都可以获取到dom,但是还是建议在mounted中使用哈,因为beforeMount/mounted本来就是挂载dom。