Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • vue3有哪些新特性

vue3有哪些新特性

1.组合式API(composition API)

为什么使用composition API

options API的组件,比如在A组件中定义了B/C组件的data,methods,生命周期方法,computed,各个逻辑分散在组件的不同区域,代码难以复用,使用composition API解决了这个问题,可以做到高内聚、低耦合,代码可复用性和可维护性更好

更好的类型推断,对Typescript更友好 composition API看不到this的使用,解决了this指向不明的问题

2、生命周期变化

创建:beforeCreate和created被setup替代了

挂载:onBeforeMount onMounted

更新:onBeforeUpdate onUpdated

销毁:onBeforeUnmount onUnmounted

2.teleport

Teleport类似于React的Portal,可以将组件挂载在任何DOM节点上

<button @click="openToast">打开toast</button>
// <!--挂载在id为dialog的节点上-->
<teleport to="#dialog">
  <div v-if="visible" class="toast-container">
    <div class="toast-msg">我是一个toast</div>
  </div>
</teleport>

3.Fragment

Fragment组件支持多个根节点,作用:减少标签层级,减少内存占用

<template>
  <header>...</header>
  <main v-bind="$attrs">...</main>
  <footer>...</footer>
</template>

diff算法优化

createRenderer

3、响应式原理变化

用Proxy代理配合Reflect反射代替了v2中的Object.defineProperty()实现数据的响应式

4、更好的支持TS

因为源码用TS写的

5、新增内置组件

Fragment(片段)、Teleport(瞬移)、Suspense(不确定)

6、新的脚手架工具vite

7、可以设置多个根节点

8、重写虚拟DOM的实现和Tree-Shaking,渲染速度更快、打包体积更小

9、移除了一些东西

移除v-on的键盘修饰符
移除过滤器filter
Edit this page
最近更新: 2025/6/27 02:24
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人