el-table怎么写无限级数状列表
时间: 2023-10-14 18:14:32 浏览: 88
要实现无限级数状列表,可以使用递归组件。假设你的数据结构是如下的树形结构:
```
[
{
"id": 1,
"name": "Category 1",
"children": [
{
"id": 2,
"name": "Subcategory 1-1",
"children": [
{
"id": 3,
"name": "Sub-subcategory 1-1-1",
"children": []
},
{
"id": 4,
"name": "Sub-subcategory 1-1-2",
"children": []
}
]
},
{
"id": 5,
"name": "Subcategory 1-2",
"children": []
}
]
},
{
"id": 6,
"name": "Category 2",
"children": []
}
]
```
你可以定义一个递归组件 CategoryTree,用于渲染每个层级的列表。在这个组件中,你需要用到 el-table 和 el-table-column 组件来渲染表格。
```html
<template>
<el-table :data="categories">
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column label="Children">
<template slot-scope="scope">
<category-tree :categories="scope.row.children"></category-tree>
</template>
</el-table-column>
</el-table>
</template>
```
在这个组件中,你将递归地使用 CategoryTree 组件来渲染每个子节点。注意,你需要将子节点传递给 CategoryTree 组件作为 props。
接下来,你需要在 JavaScript 中定义 CategoryTree 组件:
```javascript
<template>
<el-table :data="categories">
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column label="Children">
<template slot-scope="scope">
<category-tree :categories="scope.row.children"></category-tree>
</template>
</el-table-column>
</el-table>
</template>
<script>
export default {
name: 'CategoryTree',
props: {
categories: {
type: Array,
default: () => []
}
}
};
</script>
```
在这个组件中,你使用了与父组件相同的模板,但是它接受一个 categories 属性,该属性包含当前节点的子节点。如果子节点为空,则不会递归调用 CategoryTree 组件。
最后,你需要在父组件中使用 CategoryTree 组件:
```html
<template>
<category-tree :categories="categories"></category-tree>
</template>
```
这将渲染整个无限级数状列表。
阅读全文