5.标签页
-- 未经授权禁止转载 --

代码

demo\src\App.vue
    <script setup>

        import { ref, reactive } from 'vue'

        //默认选中的标签名称
        const selectedName = ref("2")

        //选中标签触发的回调
        const tabClick = (tab, event) => {
            console.log("tab", tab.props, "event", event)
        }

        const tab = reactive({
            arr: [
                { name: "1", title: '邓瑞', content: '内容1' },
                { name: "2", title: '邓瑞编程', content: '内容2' },
                { name: "3", title: 'dengruicode.com', content: '内容3' },
            ]
        })

        //添加
        const tabAdd = () => {
            let index = tab.arr.length
            index++

            tab.arr.push({
                name: index,
                title: '新选项卡' + index,
                content: '内容' + index
            })
        }

        //移除
        const tabRemove = (name) => {
            console.log("name:", name)

            const index = tab.arr.findIndex((value) => {
                return value.name === name
            })

            tab.arr.splice(index, 1) //移除元素
        }
        
    </script>

    <template>

        <h3>标签页</h3>
        <el-tabs v-model="selectedName" @tab-click="tabClick">
            <el-tab-pane label="邓瑞" name="1">内容1</el-tab-pane>
            <el-tab-pane label="邓瑞编程" name="2">内容2</el-tab-pane>
            <el-tab-pane label="dengruicode.com" name="3">内容3</el-tab-pane>
        </el-tabs>

        <h3>卡片风格</h3>
        <el-tabs v-model="selectedName" @tab-click="tabClick" type="card">
            <el-tab-pane label="邓瑞" name="a">内容1</el-tab-pane>
            <el-tab-pane label="邓瑞编程" name="b">内容2</el-tab-pane>
            <el-tab-pane label="dengruicode.com" name="b">内容3</el-tab-pane>
        </el-tabs>

        <h3>带有边框的卡片风格</h3>
        <el-tabs v-model="selectedName" @tab-click="tabClick" type="border-card">
            <el-tab-pane label="邓瑞" name="A">内容1</el-tab-pane>
            <el-tab-pane label="邓瑞编程" name="B">内容2</el-tab-pane>
            <el-tab-pane label="dengruicode.com" name="C">内容3</el-tab-pane>
        </el-tabs>

        <h3>动态添加</h3>
        <el-button @click="tabAdd">添加</el-button>

        <el-tabs v-model="selectedName" @tab-remove="tabRemove" closable type="card">
            <el-tab-pane v-for="(value, key) in tab.arr" :key="value.name" :label="value.title" :name="value.name">
                {{ value.content }}
            </el-tab-pane>
        </el-tabs>

    </template>

    <style scoped>
    
    </style>