当前位置:首页 > VUE

vue如何实现单选

2026-01-14 05:47:11VUE

使用原生 HTML 单选按钮

在 Vue 中可以直接使用 HTML 的原生单选按钮,通过 v-model 绑定数据。

vue如何实现单选

<template>
  <div>
    <input type="radio" id="option1" value="Option 1" v-model="selectedOption" />
    <label for="option1">Option 1</label>
    <input type="radio" id="option2" value="Option 2" v-model="selectedOption" />
    <label for="option2">Option 2</label>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: ''
    }
  }
}
</script>

使用 Vue 组件库(如 Element UI)

若使用 Element UI 等组件库,可直接调用其封装好的单选组件。

vue如何实现单选

<template>
  <div>
    <el-radio v-model="selectedOption" label="Option 1">Option 1</el-radio>
    <el-radio v-model="selectedOption" label="Option 2">Option 2</el-radio>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: ''
    }
  }
}
</script>

动态生成单选选项

通过 v-for 动态渲染选项列表,适用于选项数据来自后端或动态变化的情况。

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

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { value: 'A', label: 'Option A' },
        { value: 'B', label: 'Option B' }
      ]
    }
  }
}
</script>

自定义单选组件

封装可复用的单选组件,适合项目中频繁使用单选的场景。

<!-- RadioGroup.vue -->
<template>
  <div>
    <label v-for="option in options" :key="option.value">
      <input 
        type="radio" 
        :value="option.value" 
        :checked="option.value === modelValue" 
        @change="$emit('update:modelValue', option.value)" 
      />
      {{ option.label }}
    </label>
  </div>
</template>

<script>
export default {
  props: {
    options: Array,
    modelValue: String
  }
}
</script>
<!-- Parent.vue -->
<template>
  <RadioGroup 
    v-model="selectedOption" 
    :options="[
      { value: 'X', label: 'Custom X' },
      { value: 'Y', label: 'Custom Y' }
    ]" 
  />
  <p>Selected: {{ selectedOption }}</p>
</template>

<script>
import RadioGroup from './RadioGroup.vue'
export default {
  components: { RadioGroup },
  data() {
    return {
      selectedOption: ''
    }
  }
}
</script>

分享给朋友:

相关文章

vue 实现表格单选

vue 实现表格单选

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

vue如何实现增删

vue如何实现增删

使用 Vue 实现增删功能 在 Vue 中实现增删功能通常涉及数据绑定、事件处理和列表渲染。以下是具体实现方法: 数据定义与初始化 在 Vue 组件的 data 选项中定义数组来存储需要操作的数据项…

vue如何实现计算

vue如何实现计算

Vue 计算属性的实现方法 在 Vue 中,计算属性(computed properties)是一种基于响应式依赖进行缓存的属性,适用于处理复杂逻辑或依赖其他数据属性的场景。以下是实现计算属性的几种方…

如何实现java序列化

如何实现java序列化

实现Java序列化的方法 1. 实现Serializable接口 要使一个类可序列化,需要让该类实现java.io.Serializable接口。这是一个标记接口,没有任何方法需要实现。 publi…

vue如何实现id

vue如何实现id

Vue 中实现 ID 的方法 在 Vue 中,可以通过多种方式为元素或组件分配唯一的 ID。以下是几种常见的方法: 使用 v-bind 绑定 ID 通过 v-bind 动态绑定 ID,可以在模板中直…

Java如何实现异步处理

Java如何实现异步处理

Java实现异步处理的常见方法 使用CompletableFuture CompletableFuture是Java 8引入的异步编程工具,支持链式调用和组合操作。 CompletableFutur…