Radio、border 组件 单选框

基础用法

由于选项默认可见,不宜过多,若选项过多,建议使用 Select 选择器。

要使用 Radio 组件,只需要设置v-model绑定变量,选中意味着变量的值为相应 Radio
label属性的值,label可以是String、Number或Boolean。
在这里插入图片描述

<template>
  <el-radio v-model="radio" label="1">备选项</el-radio>
  <el-radio v-model="radio" label="2">备选项</el-radio>
</template>

<script>
  export default {
    data () {
      return {
        radio: '1'
      };
    }
  }
</script>

单选框不可用的状态。

在这里插入图片描述

<template>
  <el-radio disabled v-model="radio" label="禁用">备选项</el-radio>
  <el-radio disabled v-model="radio" label="选中且禁用">备选项</el-radio>
</template>

<script>
  export default {
    data () {
      return {
        radio: '选中且禁用'
      };
    }
  }
</script>

单选框组

适用于在多个互斥的选项中选择的场景

这里是引用
结合el-radio-group元素和子元素el-radio可以实现单选组,在el-radio-group中绑定v-model,在el-radio中设置好label即可,无需再给每一个el-radio绑定变量,另外,还提供了change事件来响应变化,它会传入一个参数value。

<template>
  <el-radio-group v-model="radio">
    <el-radio :label="3">备选项</el-radio>
    <el-radio :label="6">备选项</el-radio>
    <el-radio :label="9">备选项</el-radio>
  </el-radio-group>
</template>

<script>
  export default {
    data () {
      return {
        radio: 3
      };
    }
  }
</script>

按钮样式

按钮样式的单选组合。

这里是引用只需要把el-radio元素换成el-radio-button元素即可,此外,Element 还提供了size属性。
在这里插入图片描述

<template>
  <div>
    <el-radio-group v-model="radio1">
      <el-radio-button label="上海"></el-radio-button>
      <el-radio-button label="北京"></el-radio-button>
      <el-radio-button label="广州"></el-radio-button>
      <el-radio-button label="深圳"></el-radio-button>
    </el-radio-group>
  </div>
  <div style="margin-top: 20px">
    <el-radio-group v-model="radio2" size="medium">
      <el-radio-button label="上海" ></el-radio-button>
      <el-radio-button label="北京"></el-radio-button>
      <el-radio-button label="广州"></el-radio-button>
      <el-radio-button label="深圳"></el-radio-button>
    </el-radio-group>
  </div>
  <div style="margin-top: 20px">
    <el-radio-group v-model="radio3" size="small">
      <el-radio-button label="上海"></el-radio-button>
      <el-radio-button label="北京" disabled ></el-radio-button>
      <el-radio-button label="广州"></el-radio-button>
      <el-radio-button label="深圳"></el-radio-button>
    </el-radio-group>
  </div>
  <div style="margin-top: 20px">
    <el-radio-group v-model="radio4" disabled size="mini">
      <el-radio-button label="上海"></el-radio-button>
      <el-radio-button label="北京"></el-radio-button>
      <el-radio-button label="广州"></el-radio-button>
      <el-radio-button label="深圳"></el-radio-button>
    </el-radio-group>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        radio1: '上海',
        radio2: '上海',
        radio3: '上海',
        radio4: '上海'
      };
    }
  }
</script>

带有边框

设置border属性可以渲染为带有边框的单选框。
在这里插入图片描述

<template>
  <div>
    <el-radio v-model="radio1" label="1" border>备选项1</el-radio>
    <el-radio v-model="radio1" label="2" border>备选项2</el-radio>
  </div>
  <div style="margin-top: 20px">
    <el-radio v-model="radio2" label="1" border size="medium">备选项1</el-radio>
    <el-radio v-model="radio2" label="2" border size="medium">备选项2</el-radio>
  </div>
  <div style="margin-top: 20px">
    <el-radio-group v-model="radio3" size="small">
      <el-radio label="1" border>备选项1</el-radio>
      <el-radio label="2" border disabled>备选项2</el-radio>
    </el-radio-group>
  </div>
  <div style="margin-top: 20px">
    <el-radio-group v-model="radio4" size="mini" disabled>
      <el-radio label="1" border>备选项1</el-radio>
      <el-radio label="2" border>备选项2</el-radio>
    </el-radio-group>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        radio1: '1',
        radio2: '1',
        radio3: '1',
        radio4: '1'
      };
    }
  }
</script>

Radio Attributes

在这里插入图片描述

Radio Events

在这里插入图片描述

Radio-group Attributes

在这里插入图片描述

Radio-group Events

在这里插入图片描述

Radio-button Attributes

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单选框前端展现数据字典的一种形式,下拉列表、单选按钮组和复选框组都可以实现。下拉列表是最常用的,但是单选按钮组也是一种常用的形式。下面介绍一下Vue组件单选框的封装方法。 单选框组件的封装需要考虑以下几个方面: 1. 组件的props需要包含一个list属性,用于传递选项列表。 2. 组件的props需要包含一个modelValue属性,用于传递当前选中的值。 3. 组件需要在点击选项时,通过emit事件将选中的值传递给父组件。 4. 组件需要在选项列表中循环渲染每个选项,并且根据当前选中的值来设置选项的样式。 下面是一个简单的单选框组件的实现: <<引用>> 子组件: <template> <div class="radio-group"> <div v-for="(item, index) in props.list" :key="index" class="radio-item" :class="{active: item.value === props.modelValue}" @click="handleClick(item.value)"> <span>{{ item.label }}</span> </div> </div> </template> <script setup lang="ts"> import { defineProps, defineEmits } from 'vue' const props = defineProps({ list: { type: Array, required: true }, modelValue: { type: [String, Number], required: true } }) const emit = defineEmits(['update:modelValue']) const handleClick = (value: string | number) => { emit('update:modelValue', value) } </script> <style scoped> .radio-group { display: flex; flex-wrap: wrap; } .radio-item { margin-right: 10px; margin-bottom: 10px; padding: 8px 16px; font-size: 14px; background-color: #f6f7f9; border: 1px solid #f6f7f9; cursor: pointer; } .radio-item.active { background-color: var(--cp-plain); border-color: var(--cp-primary); } </style> 在父组件中使用该组件时,只需要传递一个选项列表和一个modelValue属性即可。例如: <template> <div> <radio-group :list="options" v-model="selected"></radio-group> </div> </template> <script> import RadioGroup from './RadioGroup.vue' export default { components: { RadioGroup }, data() { return { options: [ { label: '选项1', value: '1' }, { label: '选项2', value: '2' }, { label: '选项3', value: '3' } ], selected: '1' } } } </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值