vue3知识点总结(一)

439 阅读2分钟

「这是我参与2022首次更文挑战的第23天,活动详情查看:2022首次更文挑战」。

vue3新特性

vue3相对于vue2新增了很多特性。 (1)重新实现了数据响应式,在vue2中使用了ES5的Object.defineProperty,在vue3中使用了ES6中的proxy。

(2)源码使用了typescript进行重新编写,从而能更好地类型推导。

(3)虚拟DOM新算法,更快,更小。

(4)提供了compositon api,能更好地逻辑复用与代码组织。

(5)可以根据需求自定义各种各样的渲染器。

(6)模板中可以有多个根元素。

vue2和vue3的响应式原理

vue2的响应式原理

vue2中使用了ES5的Object.defineProperty方法来实现响应式数据。

缺点:

(1)无法监测到对象属性的动态添加和删除

vue2中提供了Vue.set方法用于动态给对象添加属性,提供了Vue.delete方法用于动态删除对象的属性。

(2)无法监测到数组下标和length属性的变更

重写vue中的数组的方法,用于检测数组的变更。

vue3的响应式原理

vue3中使用ES6的proxy语法来实现响应式数据。 优点:

(1)可以监测到代理对象属性的动态添加和删除。

(2)可以监测到数组的下标和length属性的变更。

缺点:

ES6的proxy语法对于低版本的浏览器不支持,IE11。

选项API和组合API

选项API

在vue2中使用的是options api。

data选项写数据,methods选项写函数...,一个功能逻辑的代码分散。

优点:易于学习和使用,写代码的位置已经约定好。

缺点:代码组织性差,相似的逻辑代码不便于复用,逻辑复杂代码多了不好阅读。

虽然提供mixins用来封装逻辑,但是出现数据函数覆盖的概率很大,不好维护。

组合API

在vue3中使用的是composition api。

一个功能逻辑的代码组织在一起,包含数据,函数等等。

优点:功能逻辑复杂繁多情况下,各个功能逻辑代码组织在一起,便于阅读和维护。

缺点:需要有良好的代码组织能力和拆分逻辑能力。

vue3也支持vue2.x选项API写法