vue3和2.0的语法区别?

如题所述

1、vue2使用Object.defineProperty方法实现响应式数据,vue3使用proxy实现响应式数据


Object.defineProperty的缺点:


无法检测到对象属性的动态添加和删除


无法检测到数组的下标和length属性的变更


解决方法:


vue2提供Vue.$set动态给对象添加属性


Vue.$delete动态删除对象属性


重写数组的方法,检测数组变更


proxy的缺点:


es6的proxy不支持低版本浏览器(IE11)


会针对IE11出一个特殊版本进行支持


proxy的有点:


可以坚持到代理对象属性的动态新增和删除


可以监测到数组的下标和length属性的变化



2、vue3新特性:


①:数据响应重新实现(ES6的proxy代替ES5的Object.defineProperty)


②:源码使用ts重写,更好的类型推导


③:虚拟DOM新算法(更快、更小)


④:提供了compositionapi,为更好的逻辑复用与代码组织


⑤:自定义渲染器(app、小程序、游戏开发)


⑥:Fragment,模板可以有多个根元素

温馨提示:答案为网友推荐,仅供参考