当前位置:首页 > 前端教程

elementui树状

2026-03-06 00:17:02前端教程

ElementUI 树形组件使用指南

ElementUI 提供 el-tree 组件用于展示树形结构数据,支持节点选择、展开/折叠、懒加载等功能。

基础用法

通过 data 属性传入树形数据,默认使用 label 作为节点显示文本,children 作为子节点字段:

<el-tree :data="treeData"></el-tree>

对应数据格式:

treeData: [{
  label: '一级节点',
  children: [{
    label: '二级节点'
  }]
}]

自定义节点内容

使用 scoped slot 自定义节点内容和样式:

<el-tree :data="data">
  <span slot-scope="{ node, data }" class="custom-node">
    <span>{{ node.label }}</span>
    <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
  </span>
</el-tree>

节点选择配置

通过 show-checkbox 开启复选框,check-strictly 控制父子节点是否关联:

<el-tree
  :data="data"
  show-checkbox
  node-key="id"
  :check-strictly="true">
</el-tree>

懒加载模式

对于大数据量场景,使用 lazyload 方法实现动态加载:

<el-tree
  :props="props"
  :load="loadNode"
  lazy>
</el-tree>

对应方法:

loadNode(node, resolve) {
  if (node.level === 0) {
    return resolve([{ name: '根节点' }]);
  }
  // 异步加载子节点
  setTimeout(() => {
    resolve([{ name: '子节点' }]);
  }, 500);
}

常用事件处理

<el-tree
  :data="data"
  @node-click="handleNodeClick"
  @check-change="handleCheckChange">
</el-tree>

事件处理函数:

handleNodeClick(data, node) {
  console.log('点击节点:', data);
},
handleCheckChange(data, checked) {
  console.log('复选框变化:', data, checked);
}

自定义图标

通过 icon-class 属性或插槽自定义节点图标:

<el-tree :data="data">
  <i slot="expand-icon" class="el-icon-arrow-right"></i>
  <i slot="collapse-icon" class="el-icon-arrow-down"></i>
</el-tree>

节点过滤

使用 filter-node-method 实现节点过滤:

<el-input v-model="filterText"></el-input>
<el-tree
  :data="data"
  :filter-node-method="filterNode"
  ref="tree">
</el-tree>

过滤方法:

filterNode(value, data) {
  return data.label.includes(value);
}

可拖拽树

启用 draggable 属性实现节点拖拽:

<el-tree
  :data="data"
  draggable
  @node-drop="handleDrop">
</el-tree>

性能优化建议

大数据量情况下启用 :props="{ children: 'children', label: 'label' }" 明确指定字段名; 需要默认展开节点时使用 default-expanded-keys 而非 default-expand-all; 懒加载模式下合理设置 leaf 属性标识叶子节点。

elementui树状

标签: 树状elementui
分享给朋友:

相关文章

elementui获取input的值

elementui获取input的值

获取 input 值的常用方法 在 Element UI 中,可以通过 v-model 双向绑定或 ref 引用的方式获取 input 组件的值。 使用 v-model 双向绑定 <te…

elementui select

elementui select

ElementUI Select 组件使用指南 ElementUI 是基于 Vue.js 的组件库,其中 Select 组件用于提供下拉选择功能。以下是常见用法和配置方法。 基础用法 通过 v-mo…

vue 实现树状

vue 实现树状

Vue 实现树状结构的方法 在 Vue 中实现树状结构通常需要递归组件和适当的数据结构。以下是几种常见的实现方式: 使用递归组件 创建一个递归组件来处理树状数据,适用于嵌套层级不确定的情况。…

elementui面板

elementui面板

ElementUI 面板组件 ElementUI 提供了 el-collapse 和 el-collapse-item 组件来实现面板(折叠面板)功能。以下是如何使用这些组件的详细说明: 安装 El…

elementui ico

elementui ico

ElementUI 图标使用指南 ElementUI 提供了一套内置的图标库,可以通过 el-icon- 前缀直接使用。这些图标基于字体图标(iconfont)实现,支持灵活的颜色、大小调整。 内置…

elementui hover

elementui hover

ElementUI Hover 效果实现方法 ElementUI 提供了多种组件支持 hover 交互效果,主要通过 CSS 伪类和组件内置事件实现。 按钮 hover 效果 <el-but…