Vue3相比Vue2的优势表示在哪些方面
Admin 2022-07-01 群英技术资讯 520 次浏览
Vue2已经非常优秀,且具备完善的社区和生态,但是Vue3仍然在源码、性能和语法 API 三个大的方面进行了优化
源码管理方式采用monorepo
的方式进行管理,monorepo
把这些模块拆分到不同的 package
中,每个 package
有各自的 API、类型定义和测试。这样使得模块拆分更细化,职责划分更明确,模块之间的依赖关系也更加明确,开发人员也更容易阅读、理解和更改所有模块源码,提高代码的可维护性
Vue2
时期选择的是flow
,由于flow
自身存在一些功能上的短板,且TS
发展势头更好,Vue3
选择使用TS
编写代码,也可以更好的支持TS
提升开发体验
主要从两个方面进行了源码体积优化:
移除一些冷门API,比如 filter
、inline-template
等
API减少,必然会减少代码体积,这点非常容易理解
引入tree-shaking
减少打包体积
tree-shaking
依赖 ES2015
模块语法的静态结构(即 import
和 export
),通过编译阶段的静态分析,找到没有引入的模块并打上标记,这个技术在webpack
等打包工具上已经非常普及
在Vue3中的应用:我们大概率不会使用Vue
提供的全部API
,总会有一些冷门的、业务场景单一使用不到的API,那么在打包的过程中就可以将这些没有被用户使用的API
移除,减少打包体积
Vue2
之前使用Object.defineProperty
进行数据劫持
Object.defineProperty(source, key, { get(){ // todo... }, set(){ // todo... } })
其存在一些缺陷
key
是什么,并不能很好的监听到对象属性的添加、删除data
,导致深层嵌套数据结构造成性能负担,Vue3
使用Proxy
进行数据劫持,可以很好的规避Object.defineProperty
带来的缺陷p = new Proxy(source, { get() { // todo... }, set() { // todo... } })
Vue3
在语法方面进行了优化,主要是提供了 Composition API
替换原本的Options API
Options API
提供了 methods
、computed
、data
、props
以及各个阶段的生命钩子选项,开发者可以在每个API中做着对应的事情,各司其职,上手和理解成本非常低,对于新手开发者非常友好。使用其开发小型项目时代码的阅读性、维护性等也是可观的,但是当遇到大型项目或者较为复杂的业务逻辑时,代码将会变得非常难以维护,常常导致修改一个功能需要在代码中跳转多个地方,一个功能的代码分散在各个地方,造成阅读和理解成本直线增加,Composition API
,它有一个很好的机制去解决这样的问题,就是将某个逻辑关注点相关的代码全都放在一个函数里,这样当需要修改一个功能时,就不再需要在文件中跳来跳去
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Vue众所周知是一个轻量级的框架,源码仅仅为72.9KB,但是也有它自己的缺点,就是首屏加载会比较慢,这篇文章主要给大家介绍了关于Vue项目首屏性能优化组件的相关资料,需要的朋友可以参考下
这篇文章主要介绍了 vue指令v-html和v-text,文章围绕vue指令v-html和v-text的相关资料展开详细内容,需要的小伙伴可以参考一下,希望对大家有所帮助
1.方法介绍2.apply、call和bind方法的实现2.1.apply的实现2.2.call的实现2.3.bind的实现总结1.方法介绍apply、call和bind都是系统提供给我们的内置方法,每个函数都可以
使用node.js怎么样实现发送邮件提醒?邮件在学习和工作中的使用还是比较多的,有时候我们需要定期的发送一些邮件,而要确保能按时发送不忘记,定时自动邮件提醒功能还是很关键的,下面我们就来看看这个功能要怎样做?
1.MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。是世界上目前用的最广泛的nosql数据库2.noSql翻译过来notonlysql不仅仅是sql他就是一个非关系型数据库,它的特点:高性能、易部署、易使用,存储数据非常方便。注:①关系型数据库,是指采用了关系模型来组织数据的数据库。 关系模型指的就是
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008