当前位置:首页 > VUE

vue-treeselect实现多选

2026-01-22 04:50:07VUE

vue-treeselect 多选实现方法

vue-treeselect 是一个基于 Vue.js 的多级树形选择组件,支持单选和多选模式。以下是实现多选功能的具体方法:

安装与引入

确保已安装 vue-treeselect 依赖:

npm install @riophae/vue-treeselect

在组件中引入:

import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'

基础多选配置

在组件模板中添加 Treeselect 并启用多选:

<treeselect
  :multiple="true"
  :options="options"
  v-model="selectedValues"
/>

关键属性说明

  • multiple: 设置为 true 启用多选模式

    vue-treeselect实现多选

  • options: 树形数据源,格式示例:

    options: [
    {
      id: 'group1',
      label: 'Group 1',
      children: [
        { id: 'item1', label: 'Item 1' },
        { id: 'item2', label: 'Item 2' }
      ]
    }
    ]
  • v-model: 绑定选中的值数组

高级功能配置

限制选择数量:

vue-treeselect实现多选

<treeselect
  :multiple="true"
  :limit="3"
  :options="options"
  v-model="selectedValues"
/>

显示选择数量:

<treeselect
  :multiple="true
  :show-count="true"
  :options="options"
  v-model="selectedValues"
/>

异步加载数据

实现异步加载子节点:

async-load-options({ action, parentNode, callback }) {
  if (action === LOAD_CHILDREN_OPTIONS) {
    setTimeout(() => {
      parentNode.children = [
        { id: `${parentNode.id}-child`, label: `${parentNode.label} Child` }
      ]
      callback()
    }, 1000)
  }
}

样式定制

通过 CSS 覆盖默认样式:

.vue-treeselect__control {
  border-radius: 4px;
}
.vue-treeselect__menu {
  max-height: 300px;
}

注意事项

  1. 多选模式下 v-model 绑定的是数组
  2. 节点 id 必须唯一
  3. 大数据量建议使用异步加载
  4. 可通过 flat 属性控制是否允许选择父节点

完整文档参考:vue-treeselect GitHub

标签: 多选vue
分享给朋友:

相关文章

vue实现下拉层级

vue实现下拉层级

Vue实现下拉层级菜单 使用Vue实现下拉层级菜单可以通过递归组件或动态渲染的方式完成。以下是两种常见实现方法: 递归组件实现 创建一个递归组件处理多级菜单结构: <template>…

vue observer实现

vue observer实现

Vue Observer 实现原理 Vue 的响应式系统核心是通过 Object.defineProperty(Vue 2)或 Proxy(Vue 3)实现的 Observer 模式。以下是关键实现细…

vue 实现轮播

vue 实现轮播

Vue 实现轮播的方法 使用第三方库(如 Swiper) 安装 Swiper 库: npm install swiper 在 Vue 组件中引入 Swiper: <template&…

vue事件实现

vue事件实现

Vue 事件实现方法 在Vue中,事件处理是通过v-on指令或@简写来实现的。以下是几种常见的事件处理方式: 使用v-on指令绑定事件 <button v-on:click="handleC…

vue实现甘特图

vue实现甘特图

使用 Vue 实现甘特图 基于开源库(如 vue-ganttastic) 安装依赖库: npm install vue-ganttastic 示例代码: <template> &l…

vue实现循环

vue实现循环

Vue 实现循环的方法 在 Vue 中,可以通过 v-for 指令实现循环渲染列表或对象。以下是几种常见的用法: 遍历数组 使用 v-for 遍历数组时,可以同时获取当前项和索引: <ul&…