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

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视频

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

elementui ico

elementui ico

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

elementui核心

elementui核心

Element UI 核心概念 Element UI 是基于 Vue.js 2.0 的桌面端组件库,其核心设计理念是简洁、高效、易用。以下是其核心组成部分: 组件化设计 提供丰富的 UI 组件,如…

elementui如何

elementui如何

ElementUI 基本使用 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件和交互功能。以下是 ElementUI 的基本使用方法。 安装 ElementUI…

elementui safari

elementui safari

ElementUI 在 Safari 浏览器中的兼容性问题 ElementUI 是基于 Vue.js 的组件库,但在 Safari 浏览器中可能会遇到一些兼容性问题。以下是常见问题及解决方案: 日期…

elementui auto

elementui auto

Element UI AutoComplete 组件 Element UI 的 AutoComplete 组件是一个输入框的自动完成功能,用户输入时会出现下拉建议。适用于需要快速输入或搜索的场景。…