vue3的源代码github库,请各位兄弟姐妹们自行去下载.
一览vue3新特性
1、性能
2、tree shaking支持,更小的文件大小
3、composition api新语法
4、Fragment,Teleport Suspense新组件
5、更好的typescript支持
6、自定义渲染器
性能
1、重写vdom,静态标记性能杠杠的
2、编译时优化
3、更好的初始化性能
4、和vue2比,更新快了1.2-2倍
5、和vue2比,ssr快了2-3倍
Tree-shaking
文件大小变化很明显,22.5-13.5,如果是用composition新语法,只有11.75kb
Composition
1、和optionapi共存,更好的逻辑组织方式(后面会有实际代码)
2、reactivity成为一个独立的包
Fragment,Teleport Suspense
Fragment
组件不需要一个唯一的根节点了,写递归方便多了
Teleport
其实就是portal
Suspense
异步组件
更好的typescript支持
代码块用typescript重写,vue3对于typescript支持性更好。
自定义渲染器
可以在其他平台任意扩展,比如小程序,webgl,canvas等,很牛逼的能力。
其他生态
开启vue3
vue-cli
vue-cli 是vue官方发布vue.js项目的脚手架,用来快速搭建项目。
vue3 对应的 vue-cli版本要 4.5 以上,vue -v查看版本,低于4.5以上可以卸载重装一下。
npm install -g @vue/cli // 全局安装
vue -V // 看看版本
vue create vue-project // 通过脚手架快速搭建项目基本结构 @vue/cli 5.0.8 对应的 vue项目版本是 3.2.13
vite
npm create vite@latest
然后按照提示操作即可!模板有vanilla,vanilla-ts,vue,vue-ts,react,react-ts,preact,preact-ts,lit,lit-ts,svelte,svelte-ts。我们选择vue 或者 vue-ts。
vue2 和 vue3 区别
| vue3 | vue2 | |
|---|---|---|
| 实现方式 | new Proxy | Object.defineProperty |
| 差异 | 劫持的是整个对象,在data、props、computed中定义的数据就是响应式 | 劫持的是对象中的属性,显式地调用响应式API |
| 优势 | 能够监听整个对象的变化,对数组,以及对象的属性增加删除都能监听到,初始化阶段性能好 | 兼容性能好,支持ie9+,性能好 |
| 不足 | 不支持ie11及以下 | 不能监听对象的新增和删除,对数组需要做特别的处理 |