Vue 2 组件化、响应式、内置虚拟dom、用在浏览器开发,并且有一个运行时把这些模块很好的管理起来的架构
Vue2 的响应式并不是真正意义的代理,而是基于Object.defineProperty实现的。删除数据无法监听,需要$delete等Api辅助监听
Option API 在组织代码较多组件的时候不易维护,所有的methods、computed 都内置在一个对象中
Vue3
响应式系统、compositionApi 组合语法、新组件、Vite;自定义渲染器、RFC机制、TS
RFC机制:先在GitHub上公开征求意见,很多新引入的Api都可以在github上找到来龙去脉,能够很好的理解Vue的发展史
响应式系统:
由 Object.defineProperty 监听 改成了Proxy 真正的代理,优点是 Proxy可以真正的监听一个对象的改变,包含Map和set 等变化
自定义渲染器
vue 包含了 运行时、组件、虚拟Dom、浏览器渲染、平台无关的渲染逻辑、响应式。
vue2 都包含在一起了,Vue3 采用了monorepo 管理方式,将每个模块都拆分开独立运行了
可以做到单模块拆到其他地方运行、自由组合
全部模块使用Ts重构
- 可以进行类型校验
- 对于多人长期维护的大型项目更友好
- 让系统更健壮了
Vue2 使用的是Flow.js Vue3使用的是TypeScropt
Composition Api组合语法
- 功能点可以放在一起,不用反复横跳,更加的清爽
- 所有的Api都是import引入的对tree-shaking友好
- 变量不用都放到data里面
新的组件
- Fragment 组件不再要求唯一的根节点,清除了很多的占位div
- Teleport 允许组件渲染在别的元素内,开发弹窗组件的时候特别有用
- Suspense 异步组件,更方便开发有异步请求的组件
新一代工程化工具Vite
Vite 是奔着替换WebPack出现的
WebPack需要将所有文件一起打包在调试
Vite 只根据首页面打包调试,打包内容少了,就更快,更方便了
Vue 3 带给我们的就是更快、更强且更易于扩展的开发体验