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

elementui selecttree

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

使用 ElementUI 的 TreeSelect 组件

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

基本使用

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

<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 属性可启用多选:

<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 selecttree

分享给朋友:

相关文章

elementui下载

elementui下载

下载Element UI的方法 Element UI可以通过npm或yarn进行安装,也可以直接下载文件引入到项目中。 npm安装方式 npm install element-ui -S ya…

elementui开发

elementui开发

ElementUI 开发指南 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件和交互功能。以下是开发中的关键要点: 安装与引入 通过 npm 安装 Elemen…

selectable elementui

selectable elementui

使 ElementUI 组件可选中 ElementUI 默认情况下没有直接提供 selectable 功能的组件,但可以通过以下方法实现可选中效果。 使用 el-checkbox 实现单个选中 通…

elementui整合

elementui整合

ElementUI 整合指南 ElementUI 是一款基于 Vue.js 的桌面端组件库,广泛应用于中后台系统的快速开发。以下是整合 ElementUI 到项目中的具体方法: 安装 Elemen…

elementui require

elementui require

ElementUI 引入方式 ElementUI 可以通过多种方式引入到项目中,具体选择取决于项目需求和开发环境。 npm 安装 适用于 Vue.js 项目,通过 npm 或 yarn 安装…

elementui选中

elementui选中

选中状态的基本用法 在Element UI中,选中状态通常通过v-model绑定数据实现。例如表格的多选功能,使用el-table组件配合type="selection"的列定义,结合v-model绑…