vue(左)和vue3(右)
创建前:BeforeCreate-----data和methods中的数据都没有初始化
创建后:Created-----实例创建完成? ? ? ? ? ? ? ? ? ? ? (vue3将BeforeCreate和Created合并为setup)
挂载前:BeforeMount() ----dom树已经生成,但还未挂载? ? ? ? ? ? ? ? ? ? ? ? ?? onbeforemount()
挂载后:Mounted----dom节点全部挂载完成? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?onmounted()
更新前:BeforeUpdate()----数据更新前调用? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?onbeforeupdate()
更新后:Updated()----数据已经更新,dom元素重新渲染? ? ? ? ? ? ? ? ? ? ? ? ? ? ??onupdated()
销毁前:BeforeDestory()----实例摧毁前调用,清除定时器或取消事件监听 onbeforeunmount()
销毁后:Destroyed()----实例已经摧毁? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?onunmount()
通过数据劫持和发布者订阅者模式进行的,vue2中数据劫持是通过object.defineProperty(),而vue3中是通过Proxy
通过旧的虚拟Dom树和新的Dom树进行比较,对有变化的dom节点进行更新。
props:在父组件中,给子组件绑定一个自定义属性,在子组件中,通过props进行接收
自定义事件:在父组件中,给子组件绑定一个自定义事件,绑定事件的值为接收参数的函数,在子组件中,通过$emit发送数据
vue3中,父组件中引入子组件后,不需要注册可直接使用。父传子时,子组件中通过defineProps方法接收,子传父时,子组件中通过defineEmits方法发送。
?
也就是说vue3可以有多个根节点,而vue2只能必须只有一个根节点来包裹