在uni-app中使用表单组件时,特别是处理单选按钮(radio)时,通常会结合radio-group
组件来管理多个radio
元素。相比直接使用e.target.value
来获取选中的值,使用radio-group
的@change
事件可以更方便地获取到选中的值。这是因为radio-group
组件会封装好内部radio
的选中状态,并直接通过事件对象传递出来。
以下是一个使用radio-group
和radio
组件的简单示例,展示了如何在uni-app中实现单选按钮的功能,并获取选中的值:
<template>
<view class="container">
<radio-group @change="handleRadioChange">
<label v-for="(item, index) in radioList" :key="index">
<radio :value="item.value">{{ item.text }}</radio>
</label>
</radio-group>
<view>选中的值: {{ selectedValue }}</view>
</view>
</template>
<script>
export default {
data() {
return {
radioList: [
{ value: 'option1', text: '选项1' },
{ value: 'option2', text: '选项2' },
{ value: 'option3', text: '选项3' }
],
selectedValue: ''
};
},
methods: {
handleRadioChange(event) {
this.selectedValue = event.detail.value;
}
}
};
</script>
<style scoped>
.container {
padding: 20px;
}
label {
display: block;
margin: 10px 0;
}
</style>
在这个示例中:
radio-group
组件包含了多个radio
元素,每个radio
元素通过v-for
指令循环生成,绑定到radioList
数组。
radioList
数组包含了单选按钮的选项,每个选项有value
和text
属性。
- 当用户选择一个单选按钮时,
radio-group
的@change
事件被触发,handleRadioChange
方法被调用。
handleRadioChange
方法接收一个事件对象,该对象包含一个detail
属性,其中value
属性即为选中的单选按钮的值。
- 将选中的值赋给
selectedValue
数据属性,以便在页面上显示。
这种方法避免了直接使用e.target.value
,而是利用了radio-group
组件提供的事件机制,使得代码更加简洁和易于维护。