1. Vue 3相比Vue 2有哪些主要改进?
- 使用了Composition API,提高了代码逻辑的可复用性。
- 引入了Fragment,允许组件有多个根节点。
- 更好的TypeScript支持。
- 使用了更小的包体积和更高效的运行时性能。
- 提供了Suspense组件,用于处理异步组件的加载状态。
- Teleport组件允许将子组件渲染到DOM中的任何位置。
2. 请解释Vue 3的Composition API是什么?
Composition API 是一组新的、基于函数的 API,它允许你以更灵活和可复用的方式组织组件逻辑。它主要包括 ref
、reactive
、computed
、watch
、setup
等函数和钩子。
3. setup()
函数在Vue 3中起什么作用?
setup()
是 Vue 3 组件选项 API 中的一个新选项。它是 Composition API 的入口点,在组件被创建之前执行,用于初始化状态、计算属性和方法,并返回在模板中使用的响应式引用。
4. 请解释ref
和reactive
的区别?
ref
用于创建简单的响应式引用,通常用于基本数据类型。reactive
用于创建响应式对象,通常用于复杂数据类型如数组和对象。
5. Vue 3中的watch
和watchEffect
有何不同?
watch
允许你监听特定的响应式引用或计算属性,并在它们改变时执行回调函数。watchEffect
会立即执行一个函数,并自动追踪其依赖的响应式引用,当依赖改变时重新执行。
6. Vue 3中的Suspense
组件是如何工作的?
Suspense
组件允许你指定一个加载中的状态(fallback)和一个加载失败的状态(fallback slot),用于处理异步组件的加载状态。当异步组件加载时,会先显示加载中的状态;加载完成后,会显示异步组件;如果加载失败,会显示加载失败的状态。
7. Vue 3中的Teleport
组件有什么作用?
Teleport
组件允许你将子组件渲染到DOM树中的任何位置,而不仅仅是其父组件的模板内。这在处理模态框、下拉菜单等需要渲染到特定位置的组件时非常有用。