Vue3.0 和 Vue2.0 相比,优势主要体现在:更快、更小、更易维护、更易于原生、让开发者更爽;
更快
- virtual DOM 完全重写,mounting & patching 提速 100%;
- 更多编译时 (compile-time)提醒以减少 runtime 开销;
- 基于 Proxy 观察者机制以满足全语言覆盖以及更好的性能;
- 放弃 Object.defineProperty ,使用更快的原生 Proxy
- 组件实例初始化速度提高 100%;(速度翻倍)
- 提速一倍/内存使用降低一半;(内存减半)
更小
- Tree-shaking 更友好;
- 新的 core runtime:~ 10kb gzipped;
一些其他的
1. 3.0 新加入了 TypeScript 以及 PWA 的支持
1.PWA全称Progressive Web App,即渐进式WEB应用。
一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用. 随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能
PWA可以将app的快捷方式放置到桌面上,全屏运行,与原生app无异
2. 部分命令发生了变化
下载安装 npm install -g vue@cli
删除了vue list
创建项目 vue create project //项目的名称
启动项目 npm run serve
3. 默认项目目录结构也发生了变化
移除了配置文件目录,config 和 build 文件夹
移除了 static 文件夹,新增 public 文件夹,并且 index.html 移动到 public 中
在 src 文件夹中新增了 views 文件夹,用于分类 视图组件 和 公共组件
4. 3.0安装项目时自动下载node-model。
5. 默认进行懒观察(lazy observation)
在 2.x 版本里,不过数据多大,都会在一开始就为其创建观察者。当数据很大时,这可能会在页面载入时造成明显的性能压力。3.x 版本,只会对「被用于渲染初始可见部分的数据」创建观察者,而且 3.x 的观察者更高效。
6. 更精准的变更通知
比例来说:2.x 版本中,你使用 Vue.set 来给对象新增一个属性时,这个对象的所有 watcher 都会重新运行;3.x 版本中,只有依赖那个属性的 watcher 才会重新运行。