0

0

0

修罗

站点介绍

只有了解事实才能获得真正的自由

vue slot开发表格组件

修罗 2020-09-15 1993 0条评论 vue

首页 / 正文

vue slot开发表格组件

slot用法回顾

子组件

1600180395235.png

父组件引入

用法1

1600180718443.png

用法2

1600180699094.png

表格组件开发

组件内容

1600181614460.png

组件使用

定义表头和表格数据

1600180912924.png

使用组件

1600181151047.png

本案例代码

表格组件(需要bootstrap样式支持)

<template>
    <table class="table table-bordered">
        <thead>
            <tr>
                <th v-for="(item,index) in columns" :key="index">{{item.name}}</th>
            </tr>
        </thead>
        <tbody>
            <tr v-for="(item,index) in data" :key="index">
                <td v-for="(td,tdi) in columns" :key="tdi">
                    {{item[td.slot] || ''}}
                    <slot :name="td.slot" :item="item" :index="index"></slot>
                </td>
            </tr>
        </tbody>
    </table>
</template>

<script>
    export default {
        props:['columns','data']
    }
</script>

<style>
</style>

使用

<template>
    <div>
        <e-table :columns="columns" :data="data">
            <template #action="{item, index}">
                <button class="btn btn-primary btn-sm mr-2" @click="edit(item)">修改</button>
                <button class="btn btn-danger btn-sm" @click="del(index)">删除</button>
            </template>
        </e-table>
    </div>
</template>

<script>
    import eTable from "./e-table.vue"
    export default {
        data() {
            return {
                columns: [
                    { name: "姓名", slot: "name" },
                    { name: "性别", slot: "sex" },
                    { name: "年龄", slot: "age" },
                    { name: "操作", slot: "action" }
                ],
                data: [
                    { name: "小明", sex: "男", age: 22 },
                    { name: "小红", sex: "女", age: 20 },
                    { name: "小黄", sex: "男", age: 23 },
                ]
            }
        },
        components: {
            eTable
        },
        methods: {
            edit(item) {
                item.name = Math.floor(Math.random() * 100)
            },
            del(index) {
                this.data.splice(index, 1)
            }
        },
    }
</script>

<style>
</style>

评论(0)


最新评论

  • https://www.studyglobus.com/author/carroll34a5552/

    Ценники на вывоз мусора сейчас космос, любые лайфхаки по экономии в тему.

  • Richardgrold

    1xbet onlayn kazino platforması ilə vaxtınızı daha səmərəli və maraqlı keçirin. Saytın canlı kazino bölməsi istifadəçilərə fərqli bir dünya təklif edir. Burada canlı dilerli kazino oyunlarının hər bir növünü sınaqdan keçirə bilərsiniz. Krupyelərin peşəkarlığı oyunun dinamikasını və marağını artırır. Müntəzəm olaraq yenilənən oyun siyahısı cansıxıcılığa yol vermir. Hesabınızı artırmaq üçün onlarla fərqli və etibarlı üsul mövcuddur. Qazanılan pullar cəmi bir neçə dəqiqə ərzində şəxsi hesabınıza köçürülür. Aktiv fəaliyyətinizə görə fərdi bonuslar və hədiyyələr qazana bilərsiniz. Dəstək xidməti həm çat, həm də e-poçt vasitəsilə kömək göstərir. 1xbet ailəsinə qoşulun və böyük uduşlar üçün ilk addımı atın. onlayn kazino

  • 砂岩白丘

    我一直梦想, 看到你们相册那样的地方。真棒。

  • 城市地標

    我喜欢, 这里分享真实经验。你的项目 就是 属于这里的。请继续。

  • 宗教地標

    我热爱这样的想法, 去那么多国家。真的很鼓舞。

  • 觀景高地

    能感受到热爱。继续保持 感受。

  • 最佳季節

    我关注这样的资源, 写得很实在。你的网站 就是 属于这里的。加油。

  • 1

    1

  • 1

    1

  • -1' OR 2+158-158-1=0+0+0+1 or 'TKCTZnRa'='

    1

日历

2026年07月

   1234
567891011
12131415161718
19202122232425
262728293031 

文章目录

推荐关键字: Linux webpack js 算法 MongoDB laravel JAVA jquery javase redis