打个比方,我目前在设计一个table
组件,现在要向里面传递column
信息,
目前看到两种方案:
第一种是vue element
方式,通过el-table-column
标签向table
组件传递信息,如下:
<el-table
:data="tableData"
style="width: 100%"
max-height="250">
<el-table-column
fixed
prop="date"
label="日期"
width="150">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
width="120">
</el-table-column>
</el-table>
第二种是vue-easytable
方式,通过 props 的方式传递列数据,如下:
<template>
<v-table :columns="columns"></v-table>
</template>
<script>
export default{
data(){
return {
multipleSort: false,
tableData: [ ... ],
columns: [
{field: 'email', width: 230, columnAlign: 'center'},
{field: 'address', width: 330, columnAlign: 'left'}
],
titleRows: [
{fields: ['email'], title: '111', titleAlign: 'center',titleCellClassName:'title-cell-class-name-test2'},
{fields: ['address'], title: '333', titleAlign: 'center',titleCellClassName:'title-cell-class-name-test2'}]
]
}
}
}
</script>
这两种设计方式有啥优劣?
1
66beta 2019-04-10 11:42:00 +08:00 via Android 1
从实际业务出发吧,第一种是 slot 方式,比较灵活,也就是说它支持多种表格展示方式
第二种就比较固定了,只传对应格式的数据进去 |
2
sundev OP @66beta 之前写 react,所以比较喜欢第一种方式,但是如果用这种,那么需要在组件内部对 slot 进行解析,感觉比较麻烦!
|
3
jydeng 2019-04-10 13:07:33 +08:00 1
可以两种结合
|