You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
let res = (是否有childVal,判断组件的选项中是否有对应名字声明周期钩子)?如果有判断是否有parentVal?如果有将二者合并一个数据:如果没有判断childVal 是不是一个数组?如果childVal是一个数组直接返回:如果不是作为数组的元素然后返回:如果没有childVal直接返回parentVal
首先要了解声明周期的合并策略,
vue 生命周期进阶
基本流程
加载渲染的过程
父组件挂载完毕肯定是等里面的子组件都挂载完毕后才算父组件挂载完毕了,所以父组件的 mounted 在最后。
子组件更新过程
子组件更新过程(子组件更新影响到父组件的情况):
父beforeUpdate -> 子beforeUpdate->子updated -> 父updted
子组件更新过程(子组件更新不影响父组件的情况):
子beforeUpdate -> 子updated
父组件更新过程
eactivated 函数的触发时间是在视图更新时触发。因为当视图更新时才能知道 keep-alive 组件被停用了。
父组件更新过程(父组件影响子组件的情况):
父beforeUpdate -> 子beforeUpdate->子updated -> 父updted
父组件更新过程(父组件不影响子组件的情况):
父beforeUpdate -> 父updated
销毁过程
父 beforeDestroy->子 beforeDestroy->子 destroyed->父 destroyed
小补充
总结
Vue 父子组件生命周期钩子的执行顺序遵循:从外到内,然后再从内到外,不管嵌套几层深,也遵循这个规律
The text was updated successfully, but these errors were encountered: