在实例化vm时进行了一些属性的初始化,再这之后才调用beforeCreate钩子
初始化$parent $children $attrs $slots
这时候能读取到
props emit
等数据,但是无法读取到data
。
也就是所在beforeCreate时无法读取
data inject
数据但是能读取到
props emit
vuex
也是在这里挂载的
初始化了inject methods data computed watch provide
vue2里似乎是这时候初始化props
,我用的vue3
从这时开始才能读取data
调用$mount
挂载组件进DOM,编译模板为render函数
这时候不能读取到
vm.$refs.xxx
此时DOM没有创建
调用生成的render函数生成VNode,然后通过createElm
创建节点进DOM节点
这时候就能读取到
vm.$refs.xxx
mounted后就挂载结束,等待更新了。
beforeUpdate在异步中,此时的
this.xx
数据是更新后的,但是DOM没有更新,此时this.$refs.xxx
仍然是更新前的。
进行patch diff 然后调用updated
这时的
data refs
数据才都是更新后的。
更新结束,等待下一次更新。
这时能读取到
vm.refs.xxx vm.$data
清除父子关系,删除watcher等
这时也能读取到
vm.$data
读取不到vm.$refs
删除完成
都能读取到
都能读取到
原文:https://www.cnblogs.com/shaddollxz/p/15130521.html