vue element 树形 怎么实现 根据后端 返回的 数据 怎么处理 数据如果 children为null 就不要了
时间: 2024-03-09 20:46:09 浏览: 113
在 Vue 中使用 Element UI 的树形组件可以很方便地展示树形结构的数据。要根据后端返回的数据处理数据,你可以在获取到数据后对数据进行处理,将 children 为 null 的节点从数据中删除,然后再将处理过的数据传递给树形组件进行渲染。以下是一个示例:
```html
<template>
<div>
<el-tree
:data="treeData"
:props="treeProps"
:load="loadNode"
></el-tree>
</div>
</template>
<script>
export default {
data() {
return {
treeData: [],
treeProps: {
label: 'name',
children: 'children',
},
};
},
mounted() {
this.loadData();
},
methods: {
loadData() {
// 向后端请求数据
// 假设数据格式为:[{ id: 1, name: 'Parent 1', children: [...] }, ...]
const data = [
{
id: 1,
name: 'Parent 1',
children: [
{
id: 11,
name: 'Child 1-1',
},
{
id: 12,
name: 'Child 1-2',
},
],
},
{
id: 2,
name: 'Parent 2',
children: null,
},
{
id: 3,
name: 'Parent 3',
children: [
{
id: 31,
name: 'Child 3-1',
},
{
id: 32,
name: 'Child 3-2',
},
],
},
];
// 处理数据,将 children 为 null 的节点从数据中删除
this.treeData = data.filter(item => item.children !== null);
},
loadNode(node, resolve) {
// 异步加载节点,省略具体实现
},
},
};
</script>
```
在这个示例中,我们将从后端获取的数据处理为 treeData 数组,并将其传递给树形组件进行渲染。在 treeProps 中定义了 treeData 数组中每个节点的 label 和 children 属性名,以便树形组件正确地渲染树形结构。同时,也可以通过 load 方法来异步加载节点的子节点,这个方法的具体实现可以根据实际情况来确定。
阅读全文