vue.3.0 dom赋值_Vue3.0的几大新特性

本文介绍了Vue3.0的新特性,包括使用ES2015+和TypeScript编写,响应系统改用Proxy,虚拟DOM重写,组件渲染优化,静态树和静态属性提升等,旨在提升性能和维护性,但不再支持IE11。
摘要由CSDN通过智能技术生成

今天写这篇文章主要是为了给自己重温下Vue3.0的新特性,也为了给各位前端朋友做个简单的介绍。目前vue3的开发已经在Alpha阶段,之后应该会有Beta版本,源码地址在:https://github.com/vuejs/vue-next。预计正式上线要在2020年的第二季度。

说起Vue3的新特性,简单来说就是:更快、更小 、更容易维护 、更加友好 、更容易使用。具体的主要表现在以下几个方面。

一、、兼容性的变化

目前打包后的代码是 ES2015+,不支持 IE 11。当然,在后期的正式版本中也可能做进一步浏览器的兼容。

二、编写语言的不同

目前的代码 98% 以上使用 TypeScript 编写。

如果你还没有学习 TypeScript,请尽快学习,否则可能看不懂源码。

另外有件事情说出来可能会让你非常惊讶,Vue 3 的源代码完全没有使用 class 关键字!(只在测试代码和示例代码里用到了 class 关键字)

三、响应系统的变动

Vue3由原来的Object.defineProperty 的getter 和 setter,改变成为了ES2015 Proxy 作为其观察机制。

defineProperty缺点:

1.无法监听数组变化

2.只能劫持对象的属性,属性值也是对象那么需要深度遍历

proxy的优点:

1、可以监听数据和对象的变化,不用深度遍历

2、proxy有多达13种的拦截方法

3、proxy返回的是一个新对象, 可以通过操作返回的新的对象达到监听的目的

注意:

当使用 defineProperty 时,我们修改原来的 obj 对象就可以触发拦截而使用 proxy,就必须修改代理对象,即 Proxy 的实例才可以触发拦截,也就是new的使用。

四、虚拟DOM重写(Virtual DOM Rewrite)

Vue3重写了虚拟 DOM ,我们可以通过更多的编译时提示来减少运行时开销。重写将包括更有效的代码来创建虚拟节点。

1022dd2a78e100bdbfb9ea64d9913cdc.png

五、组件渲染的优化(优化插槽生成)

Vue2当中在父组件渲染同时,子组件也会渲染。 Vue3就可以单独渲染父组件、子组件。

217dbccf5df1441ae34a7974b76d221d.png

六、静态树提升(Static Tree Hoisting)

使用静态树提升,这意味着 Vue 3 的编译器将能够检测到什么是静态组件,然后将其提升,从而降低了渲染成本。它将能够跳过未整个树结构打补丁的过程。

56a3d32e6fcf609d37fa37f027347d82.png

七、静态属性提升(Static Props Hoisting)

此外,我们可以期待静态属性提升,其中 Vue 3 将跳过不会改变节点的打补丁过程。

11811aa1f82d8356371a2661168da7ed.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值