在vue3 setup中写一个tab标签
时间: 2024-09-24 13:13:02 浏览: 51
在Vue3的setup语法中,创建一个tab标签通常涉及到组件化和状态管理。你可以使用`setup()`函数来定义组件的局部变量,并配合Vue提供的响应式API来动态切换内容。下面是一个简单的例子:
```js
import { ref, onMounted } from 'vue';
// 定义当前选中的tab索引
const activeTab = ref(0);
// 假设我们有三个tab选项及其对应的内容
const tabs = [
{ name: 'Tab 1', content: '这是第一个tab的内容' },
{ name: 'Tab 2', content: '这是第二个tab的内容' },
{ name: 'Tab 3', content: '这是第三个tab的内容' }
];
onMounted(() => {
// 初始渲染显示第一个tab的内容
setActiveTab(0);
});
function setActiveTab(index) {
activeTab.value = index;
// 更新视图,显示对应内容
console.log('切换到 tab ', index, ' 的内容');
}
export default {
setup() {
return {
activeTab,
tabs,
setActiveTab
};
},
render() {
return (
<div>
<ul>
{tabs.map((tab, index) => (
<li key={index}>
<button @click={() => setActiveTab(index)}>{tab.name}</button>
</li>
))}
</ul>
<template v-for="(tab, index) in tabs" :key="index">
<div v-if="activeTab === index">{tab.content}</div>
</template>
</div>
);
}
};
```
在这个例子中,每个tab项点击都会触发`setActiveTab`函数,改变`activeTab`的状态,然后通过条件渲染`v-if`来切换显示对应的内容。
阅读全文