一、回答点
监测机制的变化、Fragments(碎片)的更新、API模式的变更、数据的存放、生命周期钩子、父子传参等。。
二、深入回答
Vue3中使用了ES6中Proxy API 对数据进行代理,监测整个对象,而不再是某个属性。
消除Vue2中基于Object.defineProperty的实现所存在的诸多限制。
Vue3可以监测到对象属性的添加和删除也可以监听到数组的变化。
Vue3中支持Map、Set、WeakMap和WeakSet
API模式的变化
Vue2使用选项式API(Options API)。Vue3使用组合式API(Composition API)
数据的存放
Vue3使用setup()方法,setup()方法在组件初始化构造的时候触发。
简单数据类型使用ref()方法进行处理,复杂数据类型使用reactive()方法进行处理。
使用setup()方法来返回响应式数据,在template可以获取这些响应式数据。
setup():开始创建组件之前,在beforeCreate和created之前执行。
onDeactivated():A组件切换到B组件。A组件消失时执行。
父子传参
子组件通过defineProps()进行接收,并且接收这个函数的返回值进行相应操作。
Vue2:进行虚拟节点对比,并返回一个patch对象来存储两个节点的不同,最后用patch记录的消息去局部更新Dom。它会比较每一个Vnode但对一些不参与更新的元素,进行比较会消耗性能。
Vue3:diff算法在初始化时会给每个虚拟节点一个patchFlags(优化的一个标识)。只会比较patchFlags发生变化的Vnode,从而进行视图更新,对比没有变化的做静态标记,渲染时直接复用。
原文地址:https://blog.csdn.net/qq_38514921/article/details/128692607
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_42084.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!