当前位置:首页 > VUE

vue 实现单选和多选

2026-01-22 18:25:11VUE

Vue 实现单选

在 Vue 中实现单选功能,通常使用 v-model 绑定到同一个变量,确保同一时间只有一个选项被选中。

<template>
  <div>
    <label v-for="option in options" :key="option.value">
      <input 
        type="radio" 
        v-model="selectedOption" 
        :value="option.value"
      />
      {{ option.label }}
    </label>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { value: 'option1', label: 'Option 1' },
        { value: 'option2', label: 'Option 2' },
        { value: 'option3', label: 'Option 3' }
      ]
    };
  }
};
</script>
  • 使用 v-model 绑定 selectedOption,确保单选逻辑。
  • options 数组定义可选项,通过 v-for 动态渲染。
  • 选中的值会实时更新到 selectedOption

Vue 实现多选

多选功能可以通过 v-model 绑定到一个数组,并配合 checkbox 实现。

vue 实现单选和多选

<template>
  <div>
    <label v-for="option in options" :key="option.value">
      <input 
        type="checkbox" 
        v-model="selectedOptions" 
        :value="option.value"
      />
      {{ option.label }}
    </label>
    <p>Selected: {{ selectedOptions }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: [],
      options: [
        { value: 'option1', label: 'Option 1' },
        { value: 'option2', label: 'Option 2' },
        { value: 'option3', label: 'Option 3' }
      ]
    };
  }
};
</script>
  • v-model 绑定到数组 selectedOptions,自动处理多选逻辑。
  • 勾选或取消勾选时,数组会动态更新。
  • 初始值为空数组,确保多选功能正常。

使用组件库实现单选和多选

如果需要更复杂的 UI,可以借助组件库如 Element UIAnt Design Vue

vue 实现单选和多选

Element UI 单选

<template>
  <el-radio-group v-model="selectedOption">
    <el-radio 
      v-for="option in options" 
      :key="option.value" 
      :label="option.value"
    >
      {{ option.label }}
    </el-radio>
  </el-radio-group>
</template>

Element UI 多选

<template>
  <el-checkbox-group v-model="selectedOptions">
    <el-checkbox 
      v-for="option in options" 
      :key="option.value" 
      :label="option.value"
    >
      {{ option.label }}
    </el-checkbox>
  </el-checkbox-group>
</template>
  • 组件库提供现成的样式和交互逻辑。
  • 用法与原生类似,但封装了更多功能(如禁用状态、分组等)。

动态绑定选项

选项可以动态从接口获取,只需更新 options 数据即可。

export default {
  data() {
    return {
      selectedOption: '',
      options: []
    };
  },
  async created() {
    const res = await fetch('https://api.example.com/options');
    this.options = await res.json();
  }
};
  • createdmounted 钩子中请求数据。
  • 数据更新后,模板会自动重新渲染选项。

表单验证

结合 VuelidateElement UI 的表单验证,确保选项必选。

<template>
  <el-form :model="form" :rules="rules">
    <el-form-item label="单选" prop="selectedOption">
      <el-radio-group v-model="form.selectedOption">
        <el-radio label="option1">Option 1</el-radio>
      </el-radio-group>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: { selectedOption: '' },
      rules: {
        selectedOption: [
          { required: true, message: '请选择', trigger: 'change' }
        ]
      }
    };
  }
};
</script>
  • 通过 rules 定义验证逻辑。
  • 表单提交前会自动校验选项是否合法。

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

相关文章

vue 实现表格单选

vue 实现表格单选

实现表格单选的方法 在Vue中实现表格单选功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-model绑定选中项 通过v-model绑定一个变量来记录当前选中的行数据。当用户点击某一行…

vue图片实现多选

vue图片实现多选

Vue图片多选实现方法 基础实现方案 使用v-model绑定数组配合input[type="checkbox"]实现多选功能。创建图片列表数据时,每个图片对象应包含唯一标识符: data() {…

vue实现单选

vue实现单选

Vue 实现单选按钮 在 Vue 中实现单选按钮通常使用 v-model 绑定数据,结合 <input type="radio"> 或第三方组件库(如 Element UI、Ant Des…

vue实现多选div

vue实现多选div

实现多选 Div 的基本思路 在 Vue 中实现多选 Div 功能,通常需要结合 v-model 或自定义事件管理选中状态,通过 CSS 类动态切换样式。核心逻辑包括数据绑定、状态管理和样式交互。…

vue实现多选联动

vue实现多选联动

实现多选联动的基本思路 在Vue中实现多选联动功能,通常需要利用v-model绑定数据、监听选项变化以及动态更新关联选项。以下是几种常见的实现方式: 基于v-model和计算属性 通过v-mode…

vue 实现多选框

vue 实现多选框

实现多选框的基础用法 在Vue中可以使用v-model指令绑定到数组类型的数据,实现多选框功能。基础示例代码如下: <template> <div> <in…