但是我想把el-table 放在父组件用 因为el-table 配置有点多
时间: 2023-10-06 21:10:06 浏览: 36
如果你希望将 `el-table` 放在父组件中,可以考虑将 `el-table-column` 的配置信息作为子组件的 props 传递给父组件,然后在父组件中动态生成 `el-table-column`。
具体实现步骤如下:
1. 子组件中定义 `columns` props,包含每列的属性信息。例如:
```html
<template>
<div>
<el-table :data="tableData">
<el-table-column v-for="(column, index) in columns" :key="index" :prop="column.prop" :label="column.label"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
props: {
columns: {
type: Array,
required: true
}
},
data() {
return {
tableData: [
{ name: '张三', age: 18, gender: '男' },
{ name: '李四', age: 20, gender: '女' }
]
}
}
}
</script>
```
2. 父组件中动态生成 `el-table-column`,并将配置信息作为 `columns` props 传递给子组件。例如:
```html
<template>
<div>
<table-render :columns="tableColumns" />
</div>
</template>
<script>
import TableRender from './TableRender.vue';
export default {
components: {
TableRender
},
data() {
return {
tableColumns: [
{ prop: 'name', label: '姓名' },
{ prop: 'age', label: '年龄' },
{ prop: 'gender', label: '性别' }
],
tableData: [
{ name: '张三', age: 18, gender: '男' },
{ name: '李四', age: 20, gender: '女' }
]
}
}
}
</script>
```
这样就可以实现将 `el-table` 放在父组件中,同时又能够通过子组件传递 `el-table-column` 的配置信息。