或第三方组件库(如 Element UI、Ant Des…">
当前位置:首页 > VUE

vue实现单选

2026-01-11 21:13:32VUE

Vue 实现单选按钮

在 Vue 中实现单选按钮通常使用 v-model 绑定数据,结合 <input type="radio"> 或第三方组件库(如 Element UI、Ant Design Vue 等)。以下是几种实现方式:

原生 HTML 单选按钮

通过 v-model 绑定一个变量,单选按钮的 value 属性决定选中时绑定的值。

<template>
  <div>
    <input type="radio" id="option1" value="option1" v-model="selectedOption" />
    <label for="option1">选项1</label>

    <input type="radio" id="option2" value="option2" v-model="selectedOption" />
    <label for="option2">选项2</label>

    <p>选中的选项: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: "",
    };
  },
};
</script>

使用 Element UI 的单选按钮

如果项目中使用 Element UI,可以通过 <el-radio><el-radio-group> 实现。

<template>
  <div>
    <el-radio-group v-model="selectedOption">
      <el-radio label="option1">选项1</el-radio>
      <el-radio label="option2">选项2</el-radio>
    </el-radio-group>
    <p>选中的选项: {{ 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>选中的选项: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: "",
      options: [
        { value: "option1", label: "选项1" },
        { value: "option2", label: "选项2" },
      ],
    };
  },
};
</script>

自定义样式单选按钮

通过 CSS 隐藏原生 <input>,用 <label> 实现自定义样式。

vue实现单选

<template>
  <div>
    <div class="custom-radio">
      <input
        type="radio"
        id="customOption1"
        value="option1"
        v-model="selectedOption"
      />
      <label for="customOption1">选项1</label>
    </div>
    <div class="custom-radio">
      <input
        type="radio"
        id="customOption2"
        value="option2"
        v-model="selectedOption"
      />
      <label for="customOption2">选项2</label>
    </div>
    <p>选中的选项: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: "",
    };
  },
};
</script>

<style>
.custom-radio input[type="radio"] {
  opacity: 0;
  position: absolute;
}
.custom-radio label {
  display: inline-block;
  padding: 8px 16px;
  border: 1px solid #ccc;
  cursor: pointer;
}
.custom-radio input[type="radio"]:checked + label {
  background-color: #42b983;
  color: white;
}
</style>

注意事项

  1. v-model 绑定:确保 v-model 绑定的变量初始值为空或默认选项的值。
  2. 动态选项:如果选项是异步加载的,需要在数据加载完成后设置默认值。
  3. 组件库兼容性:使用第三方组件库时,注意其 API 和事件可能与原生 HTML 不同。

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

相关文章

vue实现拍照

vue实现拍照

Vue实现拍照功能 在Vue中实现拍照功能通常需要结合浏览器的MediaDevices API和Canvas元素。以下是具体实现方法: 安装依赖(可选) 如果需要更简单的封装,可以安装vue-web…

vue实现123456

vue实现123456

Vue 实现数字 123456 的显示 在 Vue 中显示数字 123456 非常简单,可以通过以下方法实现: 方法一:直接在模板中显示 <template> <div>…

vue登录实现

vue登录实现

Vue 登录实现 实现登录功能通常需要前端与后端配合,Vue 作为前端框架,主要负责表单处理、请求发送和状态管理。以下是常见的实现方式: 表单设计与数据绑定 使用 Vue 的 v-model 实现表…

vue实现网站

vue实现网站

Vue 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建现代化的单页应用(SPA)或动态网站。以下是使用 Vue 实现网站的基本方法。 初始化 Vue 项目 使用…

vue实现gridlayout

vue实现gridlayout

Vue 实现 Grid Layout 使用 CSS Grid 布局 CSS Grid 是一种强大的布局系统,可以直接在 Vue 组件的样式中使用。通过定义网格容器和网格项,可以快速实现复杂的布局结构。…

vue实现hexo

vue实现hexo

Vue 集成 Hexo 的实现方法 Hexo 是一个静态博客框架,而 Vue 是一个前端框架。将 Vue 集成到 Hexo 中可以通过以下方式实现: 在 Hexo 中使用 Vue 组件 通过 Hex…