el-tree根据节点数据不同设置不同样式
时间: 2023-07-26 15:10:24 浏览: 108
el-tree 可以通过自定义节点的 `render` 方法来实现根据节点数据不同设置不同样式的功能。
首先,需要在 `el-tree` 中定义一个 `render` 方法,该方法会传入当前节点的数据对象作为参数。在方法中可以根据数据对象的属性值动态生成节点的样式。
例如,假设我们有一个树形结构的数据如下:
```javascript
data: [{
label: 'Node1',
type: 'folder'
}, {
label: 'Node2',
type: 'file'
}]
```
我们可以在 `el-tree` 中定义一个 `render` 方法,根据 `type` 属性的值来设置不同的样式:
```html
<el-tree :data="data" :render-content="renderContent"></el-tree>
```
```javascript
methods: {
renderContent(h, { node, data }) {
const iconClass = data.type === 'folder' ? 'el-icon-folder' : 'el-icon-document';
const labelClass = data.type === 'folder' ? 'folder-label' : 'file-label';
return (
<span class="custom-node">
<i class={iconClass}></i>
<span class={labelClass}>{node.label}</span>
</span>
);
}
}
```
在上面的例子中,我们根据 `type` 属性的值分别设置了文件夹节点和文件节点的样式,并将其渲染到了 `el-tree` 中。
需要注意的是,在上面的例子中,我们使用了 JSX 语法来生成节点的 DOM 结构,如果不熟悉 JSX 的可以使用 Vue 的模板语法来实现相同的效果。
阅读全文