关于element-ui的表格组件,vue插槽问题?
<el-table :data="dataList"> <el-table-column label="编号">
<template slot-scope="scope">{{scope.row.Id}}</template>
</el-table-column>
<el-table-column label="标题">
<template slot-scope="scope">{{scope.row.Title}}</template>
</el-table-column>
</el-table>
上面是element组件的的基本用法
我想根据上面的用法自己写一个表格组件,也包含table组件和table-column组件两个组件,
请问我怎么在table组件的默认插槽里,把row传给插槽中的el-table-column组件
table组件部分:
<div class="tbody"> <div class="tr" v-for="(row, ii) in data" :key="ii">
//直接取默认插槽,但这里怎么把row传给默认插槽中的每一个el-table-column组件
<slot name="default"></slot>
</div>
</div>
table-column组件部分:
<div class="td"> <slot name="default" :row="row"></slot>
</div>
回答:
可以参考社区的这个问答,可以实现你的需求 ? javascript - vue中如何实现跨组件传递slot(插槽)
但是过来人的经验之谈,如非必要请不要自己封装出来通用的 table
组件。
期望通过 props
传入的形式来减少 table-template
书写的目标。但其实并没有减少多少工作量。
你现在的情况多半就是因为封装好了一个简单的 table
组件,发现新需求又有其他的客制化需求,然而你封装的通用 table
组件没办法满足这个克制化需求了。
少走点弯路吧,少年。
回答:
<el-table> <el-table-column v-for="(item,index) in options">
<template #default="scope">
<slot :name="item.slotName" :scope="scope"></slot>
</template>
</el-table-column>
</el-table>
以上是 关于element-ui的表格组件,vue插槽问题? 的全部内容, 来源链接: utcz.com/p/935020.html