当前位置:首页 > VUE

Vue实现级联多选

2026-01-08 16:05:40VUE

Vue实现级联多选的方法

使用Element UI的Cascader组件

Element UI提供了Cascader组件,支持级联选择功能。通过配置props属性可以自定义节点字段名,结合checkStrictly属性实现多选。

Vue实现级联多选

<template>
  <el-cascader
    v-model="selectedOptions"
    :options="options"
    :props="{ multiple: true, checkStrictly: true }"
    clearable
  ></el-cascader>
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: [],
      options: [
        {
          value: 'guide',
          label: 'Guide',
          children: [
            { value: 'disciplines', label: 'Disciplines' },
            { value: 'navigation', label: 'Navigation' }
          ]
        }
      ]
    }
  }
}
</script>

自定义递归组件实现

通过递归组件可以灵活控制级联逻辑。定义子组件时通过v-for渲染子节点,利用v-model实现数据双向绑定。

<template>
  <div>
    <div v-for="item in options" :key="item.value">
      <input 
        type="checkbox" 
        v-model="selectedValues" 
        :value="item.value"
      >
      {{ item.label }}
      <cascade-node 
        v-if="item.children" 
        :options="item.children"
        v-model="selectedValues"
      />
    </div>
  </div>
</template>

<script>
export default {
  name: 'CascadeNode',
  props: {
    options: Array,
    value: Array
  },
  computed: {
    selectedValues: {
      get() { return this.value },
      set(val) { this.$emit('input', val) }
    }
  }
}
</script>

使用第三方库vue-treeselect

vue-treeselect专为Vue设计,支持多选、异步加载等功能。安装后通过配置multipleflat模式实现级联多选。

npm install @riophae/vue-treeselect
<template>
  <treeselect
    v-model="value"
    :multiple="true"
    :options="options"
    :flat="true"
  />
</template>

<script>
import Treeselect from '@riophae/vue-treeselect'
export default {
  components: { Treeselect },
  data() {
    return {
      value: [],
      options: [
        {
          id: 'a',
          label: 'a',
          children: [
            { id: 'aa', label: 'aa' }
          ]
        }
      ]
    }
  }
}
</script>

注意事项

  • 大数据量时建议使用异步加载
  • 选中状态维护需考虑父子节点关联逻辑
  • 移动端需注意交互体验优化
  • 自定义样式时注意层级关系

以上方法可根据项目需求选择,Element UI适合快速集成,自定义组件灵活性更高,vue-treeselect提供丰富的扩展功能。

Vue实现级联多选

标签: 多选级联
分享给朋友:

相关文章

vue实现考试多选功能

vue实现考试多选功能

实现考试多选功能的方法 数据绑定与选项渲染 使用v-model绑定用户选择的答案数组,配合v-for渲染选项列表: <template> <div v-for="(optio…

vue实现级联

vue实现级联

Vue 实现级联选择器的方法 级联选择器(Cascader)是常见的表单组件,用于处理多层级联动数据选择(如省市区选择)。以下是几种实现方式: 基于 Element UI 的 el-cascade…

vue多选实现

vue多选实现

Vue 多选实现方法 基础实现(v-model + multiple) 在 Vue 中实现多选可以通过 <select> 元素的 multiple 属性结合 v-model 完成。v-mo…

vue 实现多选框

vue 实现多选框

Vue 实现多选框的方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选框的选择功能。每个复选框的 value 属性会被添加到数组中,取消勾选时则从数…

vue实现多选答题

vue实现多选答题

Vue 实现多选答题功能 实现多选答题功能需要结合 Vue 的数据绑定和事件处理机制,以下是一个完整的实现方案: 数据结构设计 data() { return { questions:…