1、监测机制改变
· 带来基于代理proxy的observer实现,提供全语言覆盖的反应性跟踪
· 消除 Vue2中 基于Object.defineProperty的实现 所存在的许多限制
2、只能监测属性,不能监测对象
· 检测属性的 添加和删除
· 检测 数组索引和长度的变更
· 支持 Map、Set 、WeakMap 、WeakSet
3、模板
· 作用域插槽 : 2.x 的机制导致作用域插槽变了,父组件会重新渲染; 3.0将作用于插槽改成函数的方式,这样只影响子组件的重新渲染,提升渲染的性能
· render函数方面: vue3.0 一系列更改 方便开发者 直接使用APL 生成虚拟DOM
4、对象式组件声明方式
· vue2.0 通过传入一系列option声明组件, 与ts结合(TypeScript)结合麻烦
· vue3.0 修改声明方式,改成类式写法,与ts结合容易
5、其他方面
· 支持自定义渲染器。weex能通过自定义渲染器途径进行扩展,不必采取直接对源码进行分叉修改的方式。
支持自定义渲染:打个比方,这就好比原本要改造一个房子,得把整个房子的结构大改(直接 fork 源码来改),现在有了新办法,只需要根据自己的需求专门打造一些特殊的部件(自定义渲染器)来实现,方便又灵活。
· 基于tree shaking优化,更多内置功能
· 支持 Fragment(多个根节点)和 Protal(在 dom 其他部分渲染组建内容)组件,针对一些特殊的场景做了处理。
这段文本说的是支持 Fragment(可以有多个根节点)和 Portal(能在 DOM 的其他部分渲染组件内容)这两种组件,并且针对某些特殊的场景进行了相应的处理。
打个比方,就像我们在搭建一个建筑结构,Fragment 让我们可以在一个地方放置多个主要的支撑部分,而 Portal 则允许我们把特定的部分放到建筑的其他位置去展示。这样能更好地应对一些特殊的建筑设计需求,让整个结构更加灵活和多样化。