vue2 父组件传来一个二维数组,子组件动态渲染这个数组在el-table里
时间: 2024-02-01 20:15:08 浏览: 108
可以通过 Vue.js 的 props 属性将父组件的数据传递给子组件,然后在子组件中使用 v-for 指令遍历数组,将每个数组元素渲染为一行表格数据。
下面是一个示例代码:
父组件的模板:
```
<template>
<div>
<my-table :data="tableData"></my-table>
</div>
</template>
<script>
import MyTable from './MyTable.vue'
export default {
components: {
MyTable
},
data () {
return {
tableData: [
['John', 'Doe', 30],
['Jane', 'Doe', 25],
['Bob', 'Smith', 40]
]
}
}
}
</script>
```
子组件 MyTable 的模板:
```
<template>
<el-table :data="data">
<el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.prop"></el-table-column>
</el-table>
</template>
<script>
export default {
props: ['data'],
computed: {
columns () {
return [
{ label: 'First Name', prop: 'firstName' },
{ label: 'Last Name', prop: 'lastName' },
{ label: 'Age', prop: 'age' }
]
}
},
mounted () {
// 将二维数组转换为对象数组
this.data = this.data.map(row => {
return {
firstName: row[0],
lastName: row[1],
age: row[2]
}
})
}
}
</script>
```
在子组件的 mounted 钩子函数中,将二维数组转换为对象数组,方便在 el-table 中使用。在 el-table 中使用 v-for 指令遍历 columns 数组,动态生成表格列。注意,prop 属性的值必须与对象数组中的属性名一致,才能正确渲染数据。
阅读全文