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

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 方法实现动态加载子节点:

elementui selecttree

<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 是基于 Vue.js 的流行组件库,适用于快速开发中后台系统。以下是一些高级用法和优化技巧,帮助提升开发效率和用户体验。 自定义主题与样式覆盖…

elementui日志

elementui日志

以下是关于 Element UI 日志相关的信息整理: Element UI 官方日志文档 Element UI 的更新日志(Changelog)通常可以在其 GitHub 仓库或官方文档中找到。通…

elementui dllplugin

elementui dllplugin

ElementUI DLLPlugin 配置方法 ElementUI 的 DLLPlugin 是一种 Webpack 插件,用于提升构建性能。通过将不经常变化的依赖库预先编译打包,减少开发时的重复构建…

elementui抖动

elementui抖动

ElementUI 抖动问题解决方法 ElementUI 组件在使用过程中可能出现抖动问题,通常是由于动画、布局或渲染优化不足导致。以下是几种常见的解决方案: 调整过渡动画 ElementUI 部分…

mvc elementui

mvc elementui

MVC 与 Element UI 的关系 MVC(Model-View-Controller)是一种软件设计模式,将应用程序分为三个核心部分:模型(数据逻辑)、视图(用户界面)和控制器(业务逻辑)。E…

elementui pattern

elementui pattern

ElementUI 表单验证 pattern 用法 ElementUI 的表单验证中,pattern 属性用于通过正则表达式自定义验证规则。结合 el-form 和 el-form-item 的 ru…