前言
对比学习法:就是用对比两种事物的异同来进行学习,相同部分可以进行归纳,从而产生通用方法或者理论。
心路历程
由于最近几个月使用了vue3+vite2进行开发,全方位体验框架带来的“快”感,就想做些什么,让小伙伴们也能体验一下;
于是我翻阅了大部分技术社区类似文章,发现该领域的分享早已被大量文章覆盖,难...;
为了让小伙伴们重新找回“快”感,我决定通过对比学习-求同存异的方式助各位重拾初心;
一、代码管理
- 通过项目结构对比,可以看出 Vue3 文件结构更清晰,更方便阅读;
- 因为 Vue3 采用 monorepo 代码管理方式,根据功能将不同的模块拆分到 package 目录下面不同的子目录中;每个 package 有各自的 API、类型定义和测试。
- 这样使得模块拆分更细化,职责划分更明确,模块之间的依赖关系也更加明确,开发人员也更容易阅读、理解和更改所有模块源码,提高代码的可维护性;
二、Flow vs TypeScript
| Flow | TypeScript |
|---|---|
| 2014年Facebook开发 | 2012年Microsoft开发 |
| Flow的主要特点是精确、实时反馈、易于集成、可靠性、速度、高吞吐量、低延迟、类型推断、易于理解的Javascript模式 | Typescript的主要功能是编译时类型检查、枚举类型、接口、名称空间、类型注释、类型擦除、类型推断、泛型、元组 |
| 实用程序大小为68.4 MB | 实用程序大小为42.4 MB |
| React的最佳选择,很容易与Babel和现有的基础设施集成 | Angular2或更高版本为最佳选择 |
| 不支持封装 | 自typeScript2.0以来,它支持使用公共、私有、受保护的修饰符和只读进行封装 |
| 仅对React提供支持 | 支持Vue、Angular和Facebook自己的React等主要前端框架 |
| 支持的库很少 | 支持的库很多 |
| 除了提供静态类型外,它还为我们提供了广泛的过程间分析,并加深了对代码的理解 | 除了提供静态类型外,它还为我们提供了很棒的语言服务和适当的工具、包括代码重构、导航和自动完成 |
| 易上手,适合轻量级项目 | 有一定的门框,适合中、大型项目 |
Vue3 抛弃 Flow 转而采用 TypeScript 重构了整个项目,两方面原因:
1、Flow 对于一些复杂场景类型的检查,支持得并不好且 Flow 团队的烂尾
2、TypeScript 提供了更好的类型检查,能支持复杂的类型推导;
最后的话
以上,如果对你有用的话,不妨点赞收藏关注一下,谢谢 🙏,还有后续连载...