vue3 生命周期
1、理解生命周期:首先new vue()初始化事件还有生命周期,初始化完后就到 beforeCreate ,就初始化注入,响应式,data就是这里注册完了,create 执行,看有没有el属性,看下vue 的option里面有没有传template,如果有模板的话,编译模板,用render函数,没有就去取outHtml作为模板。...
1、理解生命周期:首先new vue() 初始化事件还有生命周期,初始化完后就到 beforeCreate ,就初始化注入,响应式,data就是这里注册完了,create 执行,看有没有el属性,看下vue 的option里面有没有传template,或者render函数,执行顺序就是render函数,然后如果有模板的话,编译模板,用render函数,没有就去取el的outHtml(其实就是public里面的index.html)作为模板。 然后就到baforeMount了,然后就是模板编译的整个过程,模板装成ast树,ast转成render函数,render函数装成虚拟dom,然后再打在真实节点上。 然后就到mount,就是挂载好了,然后就是beforeupdate和update这两个生命周期。更新组件的时候,就是虚拟dom的重新渲染和打补丁。 然后到组件卸载的时候,卸载到监听器,卸载掉组件,卸载事件监听。
2、vue3中是导入的形式导入的生命周期,onMount() 就是
生命周期函数,只能同步的使用在setup函数里面,因为他们都是依赖内部的全局状态去定位到当前的激活的实例(相当于this),setup被执行时的实例。
getCurrentInstance() 就是拿到当前组件实例。
在这些钩子在同步执行的时候,上下文也会被设置好的,监听器watch,计算属性也是会同步被创建,组件卸载的时候,也会自动被卸载掉。
onbeforeMount( ) 渲染前
onMount 组件挂载
onBeforeUpdate() 更新前
对比
之前有说过watchEffect 是在onbeforemount,之前执行的,如果设置了flush为post的话,那么就在onbeforemount执行,然后就到onMount , 然后再看,当数据发生变化的时候,先变化的是watchEffect 然后就到onBeforeUpdate 然后到onUpdate.
组件卸载:onBeforeUnmount 卸载之前 , onUnmounted 组件被卸载
捕获错误:onErrorCatured (e) 里面就是错误信息
更多推荐
所有评论(0)