对于即将到来的 vue3.0 特性你有什么了 解的吗?

对于即将到来的 vue3.0 特性你有什么了 解的吗?

Vue3.0正在发布的路上,Vue3.0的目标是让Vue核心变得更小、更快、更强大,因此Vue3.0增加以下这些特性:
①监测机制的改变

3.0 将带来基于代理 Proxy 的 observer 实现,提供全语⾔覆盖的反应性跟踪。
这消除了 Vue 2 当中基于 Object.defineProperty 的实现所存在的很多限制:

 - 只能监测属性,不能监测对象
 - 检测属性的添加和删除;
 - 检测数组索引和⻓度的变更;
 - ⽀持 Map、Set、WeakMap 和 WeakSet。
新的 observer 还提供了以下特性:
	
 - ⽤于创建 observable 的公开 API。这为中⼩规模场景提供了简单轻量级 的跨组件状态管理解
 决⽅案。

 - 默认采⽤惰性观察。在 2.x 中,不管反应式数据有多⼤,都会在启动时被 观察到。如果你的数
 据集很⼤,这可能会在应⽤启动时带来明显的开销。在  3.x 中,只观察⽤于渲染应⽤程序最初可
 ⻅部分的数据。

 - 更精确的变更通知。在 2.x 中,通过 Vue.set 强制添加新属性将导致依赖 于该对象的 
 	`watcher` 收到变更通知。在 3.x 中,只有依赖于特定属性的 watcher 才会收到通知。
 	
 - 不可变的 `observable`:我们可以创建值的“不可变”版本(即使是嵌套属 性),除⾮系统在
 	内部暂时将其“解禁”。这个机制可⽤于冻结`prop` 传递或 `Vuex` 状态树以外的变化。
 	
 - 更好的调试功能:我们可以使⽤新的 `renderTracked``renderTriggered`钩⼦精确地
 	跟踪组件在什么时候以及为什么重新渲染。

②模板

	模板⽅⾯没有⼤的变更,只改了作⽤域插槽,2.x 的机制导致作⽤域插槽变了,⽗组件会重
新渲染,⽽ 3.0 把作⽤域插槽改成了函数的⽅式,这样只会影响⼦组件的重新渲染,提升了
渲染的性能。
	同时,对于 render 函数的⽅⾯,vue3.0 也会进⾏⼀系列更改来⽅便习惯直接使
⽤ api 来⽣成 vdom 。

③对象式的组件声明方式

	vue2.x 中的组件是通过声明的⽅式传⼊⼀系列 option,和 TypeScript 的结合需
要通过⼀些装饰器的⽅式来做,虽然能实现功能,但是⽐较麻烦。3.0 修改了组
件的声明⽅式,改成了类式的写法,这样使得和 TypeScript 的结合变得很容
易。
	此外,vue 的源码也改⽤了 TypeScript 来写。其实当代码的功能复杂之后,必
须有⼀个静态类型系统来做⼀些辅助管理。现在 vue3.0 也全⾯改⽤ TypeScript
来重写了,更是使得对外暴露的 api 更容易结合 TypeScript。静态类型系统对于
复杂代码的维护确实很有必要。

④其他方面的更改

Vue3.0的改变是全面的,上面只涉及到主要的3个方面,还有一些其他的更改:
		
 - 支持自定义渲染器,从而使得`weex`可以通过自定义渲染器的方式来扩展,而不是
 	直接fork源码来改的方式。
 - 支持`Fragment`(多个根节点)和`Protal`(在dom其他部分渲染组件内容)组件,针对
 	一些特殊的场景做了处理。
 - 基于`treeshaking`优化,提供了更多的内置功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值