- 性能提升:
- Vue 3 引入了一个新的编译系统(Proxy-based)和响应式系统(Proxy),这极大地提高了性能。Proxy 相比 Vue 2 中的 Object.defineProperty,在处理嵌套对象和数组时更加高效和灵活。
- 静态提升(Static Hoisting)和静态树提升(Static Tree Hoisting)等编译时优化减少了运行时的计算量。
- Composition API:Vue 3 引入了 Composition API,它提供了一种更加灵活和强大的方式来组织和重用逻辑。与 Vue 2 的 Options API 相比,Composition API 允许你将组件的逻辑按功能组织起来,而不是按选项类型组织。
- 使用 Composition API,你可以更容易地提取和复用组件逻辑,这在开发大型应用时特别有用。
- 更好的 TypeScript 支持:
- Vue 3 从底层开始就是用 TypeScript 重写的,这提供了更好的 TypeScript 支持。在 Vue 3 中,你可以更容易地编写完全类型化的 Vue 应用,提高代码的可维护性和可预测性。
- Fragment、Teleport 和 Suspense:
- Vue 3 支持多个根节点(Fragment),这意味着组件模板可以包含多个根元素,而不仅仅是一个。
- Teleport 允许你将模板的某一部分移动到 DOM 中的另一个位置,这在处理模态对话框、下拉列表等场景时特别有用。
- Suspense 组件提供了一种等待异步组件完成加载的方式,同时可以显示一个备用内容,这改善了用户体验。
- 全局 API 更改:
- Vue 3 对全局 API 进行了重构,以减少全局命名空间的污染,并鼓励使用 ES 模块语法导入。例如,Vue 2 中的 Vue.config 和 Vue.mixin 现在是通过 createApp 导入的配置函数来设置的。
- 自定义渲染器 API:
- Vue 3 提供了一个自定义渲染器 API,允许开发者构建非 Web 平台的 Vue 渲染器,如原生应用或游戏引擎。
- 移除了一些特性:
- Vue 3 移除了过滤器(filters)和内置的事件修饰符(如 .key.enter),但你可以通过计算属性或方法以及全局或局部指令来轻松实现这些功能。