或第三方组件库(如 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 属性决定选中时绑定的值。

vue实现单选

<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> 实现。

vue实现单选

<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> 实现自定义样式。

<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 表格实现方法 使用原生HTML表格 在Vue模板中直接使用HTML的<table>标签,结合v-for动态渲染数据: <template> <table&g…

vue登录逻辑的实现

vue登录逻辑的实现

Vue 登录逻辑实现 前端实现 创建登录组件 在 Vue 项目中创建一个登录组件,通常命名为 Login.vue。该组件包含表单元素,如用户名和密码输入框,以及提交按钮。 <template&…

vue前端分页怎么实现

vue前端分页怎么实现

前端分页实现方法 在Vue中实现前端分页通常涉及数据分割和页面控制逻辑。以下是常见的实现方式: 使用计算属性分页 通过计算属性对数据进行切片处理: computed: { paginatedD…

vue前端实现下载进度

vue前端实现下载进度

实现下载进度条的基本思路 在Vue中实现下载进度条,通常需要结合XMLHttpRequest或Fetch API来监听下载进度事件。通过计算已下载数据与总数据的比例,动态更新进度条的显示。 使用X…

vue实现矩阵

vue实现矩阵

Vue 实现矩阵的方法 在 Vue 中实现矩阵操作可以通过多种方式完成,以下是一些常见的方法: 使用二维数组表示矩阵 矩阵可以用二维数组来表示,每个元素对应矩阵中的一个值。在 Vue 的 data…

vue实现mvc

vue实现mvc

Vue 实现 MVC 模式 Vue 本身是一个 MVVM(Model-View-ViewModel)框架,但可以通过结构调整实现 MVC(Model-View-Controller)模式。以下是具体实…