vue3的缺点,vue3和vue2
本文主要分享Vue3的几个优点。Vue3仍然在源代码、性能和语法API三个方面进行了优化。下面我们一起入文看看具体细节。
目录
1、源代码1.1 monorepo1.2 TypeScript2、性能2.1优化源代码卷2.3 Proxy2.4复合API
Vue2很优秀,有完善的社区和生态,但Vue3仍然在源代码、性能和语法API三个方面进行了优化。
1、源码
1.1 monorepo
源代码管理由monorepo管理,mono repo将这些模块拆分成不同的包,每个包都有自己的API、类型定义和测试。这样模块拆分更加细化,职责划分更加清晰,模块之间的依赖关系更加明确。开发者更容易阅读、理解和修改所有模块的源代码,代码的可维护性得到提高。
1.2 TypeScript
Vue2选择了流量。因为flow本身有一些功能上的不足,而TS有更好的开发势头,所以Vue3选择TS写代码,也可以更好的支持TS提升开发体验。
2、性能
2.1 优化源码体积
主要从两个方面进行了源码体积优化:
移除一些不受欢迎的API,比如filter,inline-template等。
API的减少必然会减少代码量,这个很好理解。
引入摇树以减少包装体积
树抖动依赖于ES2015模块语法的静态结构(即导入和导出)。通过编译阶段的静态分析,找到没有被引入的模块并标记出来。这项技术在webpack等打包工具中非常流行。
Vue3中的应用:我们很可能不会使用Vue提供的所有API,但是总会有一些冷门的API是单一业务场景无法使用的。然后在打包的过程中,我们可以去掉这些不用的API,减少打包体积。
2.3 Proxy
Vue2以前使用object . define属性劫持数据
Object.defineProperty(源,键,{
get(){
//todo.
},
set(){
//todo.
}
})
其存在一些缺陷
必须事先知道被劫持的键是什么,不能很好的监控对象属性的添加和删除。
在初始化期间递归遍历整个数据,导致由深度嵌套数据结构引起的性能负担,
Vue3使用代理劫持数据,可以避免Object.defineProperty带来的缺陷。
p=新代理(源,{
get() {
//todo.
},
set() {
//todo.
}
})
2.4 Composition API
Vue3在语法上进行了优化,主要提供了Composition API来替代原来的Options API。
Options API在各个阶段提供了方法、计算、数据、道具和生活挂钩选项。开发者可以在每个API里做相应的事情,各司其职。入门和了解的成本很低,对新手开发者很友好。用它开发小项目的时候,代码的可读性和可维护性也是相当可观的。但是当遇到大型项目或者复杂的业务逻辑时,代码会变得非常难以维护,往往导致一个功能的修改和一个功能的代码分散在各个地方,导致阅读和理解的成本线性增加。Composition API有很好的机制解决这个问题,就是把与某个逻辑关注点相关的所有代码放在一个函数里。
关于Vue3的几个优点这篇文章就说到这里。更多Vue3的相关优势,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。