vue3的缺点,vue3和vue2

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: