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

elementui selecttree

2026-01-14 21:41:25前端教程

使用 ElementUI 的 TreeSelect 组件

ElementUI 提供了 el-tree-select 组件,用于结合树形结构和下拉选择功能。以下是其基本用法和常见配置。

基本使用

在 Vue 项目中安装 ElementUI 后,可以通过以下方式引入 el-tree-select

elementui selecttree

<template>
  <el-tree-select
    v-model="selectedValue"
    :data="treeData"
    :props="defaultProps"
    placeholder="请选择"
  />
</template>

<script>
export default {
  data() {
    return {
      selectedValue: '',
      treeData: [
        {
          id: 1,
          label: '一级 1',
          children: [
            { id: 4, label: '二级 1-1' },
            { id: 5, label: '二级 1-2' }
          ]
        },
        {
          id: 2,
          label: '一级 2',
          children: [
            { id: 6, label: '二级 2-1' },
            { id: 7, label: '二级 2-2' }
          ]
        }
      ],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
    };
  }
};
</script>

常用 Props

  • v-model:绑定选中的值(可以是节点的 id 或整个节点对象)。
  • data:树形结构数据,格式为数组,支持嵌套 children
  • props:配置树节点的字段映射,如 childrenlabel
  • placeholder:输入框占位文本。
  • clearable:是否可清空选项,默认为 false
  • filterable:是否可搜索过滤节点,默认为 false
  • node-key:指定节点的唯一标识字段(如 id),默认为 id

高级功能

多选模式

设置 multiple 属性可启用多选:

elementui selecttree

<el-tree-select
  v-model="selectedValues"
  :data="treeData"
  :props="defaultProps"
  multiple
  placeholder="请选择"
/>
自定义节点渲染

通过 scoped slot 自定义节点内容:

<el-tree-select
  v-model="selectedValue"
  :data="treeData"
  :props="defaultProps"
>
  <template #default="{ node }">
    <span>{{ node.label }}</span>
    <span style="color: #999; margin-left: 8px;">{{ node.id }}</span>
  </template>
</el-tree-select>
异步加载数据

使用 lazyload 方法实现动态加载子节点:

<el-tree-select
  v-model="selectedValue"
  :props="defaultProps"
  :load="loadNode"
  lazy
  placeholder="请选择"
/>
methods: {
  loadNode(node, resolve) {
    if (node.level === 0) {
      // 加载一级节点
      resolve([{ id: 1, label: '一级节点' }]);
    } else {
      // 模拟异步加载子节点
      setTimeout(() => {
        resolve([
          { id: 2, label: '子节点 1' },
          { id: 3, label: '子节点 2' }
        ]);
      }, 500);
    }
  }
}

注意事项

  1. 数据格式:确保 data 符合树形结构格式,每个节点包含 children(若存在子节点)。
  2. 节点唯一性node-key 指定的字段(如 id)必须唯一,避免渲染问题。
  3. 性能优化:大数据量时建议使用 lazy 加载或虚拟滚动(需结合自定义实现)。

通过以上方式,可以灵活使用 el-tree-select 实现树形选择功能。

分享给朋友:

相关文章

elementui中文网

elementui中文网

Element UI 中文网相关信息 Element UI 是一款基于 Vue.js 的开源 UI 组件库,由饿了么前端团队开发和维护。以下是关于 Element UI 中文网的相关信息: 官方网…

elementui table

elementui table

ElementUI Table 基本用法 ElementUI 的 Table 组件用于展示结构化数据,支持排序、筛选、分页等功能。以下是一个基础示例: <template> &l…

elementui使用

elementui使用

安装 Element UI 通过 npm 或 yarn 安装 Element UI: npm install element-ui --save # 或 yarn add element-ui 在项…

vue elementui

vue elementui

Vue 中使用 Element UI Element UI 是一套基于 Vue 2.0 的桌面端组件库,提供丰富的 UI 组件和交互功能。以下是如何在 Vue 项目中集成和使用 Element UI…

elementui组件

elementui组件

ElementUI 组件概述 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件,适用于快速开发中后台系统。以下是其核心组件分类及典型用法。 基础组件 Button…

elementui视频

elementui视频

以下是关于 ElementUI 视频资源的整理,涵盖教程、实战案例和官方资源: ElementUI 官方视频资源 ElementUI 官方文档虽以文字为主,但部分社区或第三方平台可能有官方团队发布…