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

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 基于 Vue.js,其组件默认支持响应式设计,但需结合 CSS 媒体查…

elementui升级plus

elementui升级plus

Element UI 升级到 Element Plus 的方法 Element Plus 是 Element UI 的升级版本,专为 Vue 3 设计,提供了更好的性能和更多新特性。以下是升级的具体步…

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 vue2

elementui vue2

使用 Element UI 与 Vue 2 的指南 Element UI 是一个基于 Vue 2 的组件库,专为开发者、设计师和产品经理设计,提供丰富的组件和交互方式。 安装 Element UI…

elementui iview

elementui iview

Element UI 和 iView 对比 Element UI 和 iView 都是基于 Vue.js 的 UI 组件库,广泛应用于企业级中后台系统的开发。以下是两者的主要特点和差异: Eleme…