setup
是 Vue 3 中一个重要的选项,它用于配置组件的设置和逻辑。setup
函数是 Vue 3 Composition API 的一部分,它用于替代 Vue 2 中的 data
、methods
、computed
等选项,更好地组织和复用组件的逻辑。
setup
函数接受两个参数:
props
:包含了组件接收的所有属性的响应式对象。context
:包含了一些组件的上下文信息,如attrs
、slots
、emit
等。
setup
函数的返回值是一个对象,该对象可以包含以下属性:
data
:组件的响应式数据。methods
:包含组件的方法。computed
:计算属性。watch
:监听器。- 其他自定义属性或函数,以供组件内部使用。
下面是一个简单的示例,展示了如何使用 setup
函数:
<template> <div> <p>{{ message }}</p> <button @click="increment">Increment</button> </div> </template> <script> import { ref } from 'vue'; export default { props: { initialCount: Number, }, setup(props) { // 使用 ref 创建响应式变量 const count = ref(props.initialCount || 0); // 组件的方法 function increment() { count.value++; } // 返回需要的数据和方法 return { message: `Count: ${count.value}`, increment, }; }, }; </script>
在这个示例中,setup
函数中创建了一个响应式变量 count
和一个方法 increment
,然后将它们放入返回的对象中。在模板中,我们可以直接访问 message
和 increment
。
setup
函数的一个重要特点是它可以在组件初始化之前执行,这使得组件的逻辑更加灵活和可控。同时,setup
函数也更容易测试和组织,特别适用于大型复杂组件。