解決Element-ui radio單選框label布爾/數值的一個坑
Element-ui radio單選框label布爾/數值的坑
element-ui單選框
大家是不是都是這樣寫的,后端需要的數據是布爾類型true、false,這樣寫就導致保存及編輯顯示的時候還得處理一次,有點小麻煩
<el-radio-group v-model="radio"> ? ?? ?<el-radio-button label="是"></el-radio-button> ? ??? ?<el-radio-button label="否"></el-radio-button> </el-radio-group>
element-ui單選框可以綁定string/number/boolean類型的數據
正確操作方法
如果需要綁定數值或者布爾類型的值,需要在label前加上:,像這樣:
<el-radio-group v-model="radio"> ? ?? ?<el-radio :label="true">是</el-radio> ?? ?<el-radio :label="false">否</el-radio> </el-radio-group>
Element el-radio單選框詳解
1. 用途
單選框使用的場景非常普遍,用于列出多個選項,供用戶選擇其中一個。
注意Select選擇器也可以從多個選項中選擇一個,單選框的優(yōu)勢是可以在界面上同時顯示所有選項,缺點是選項多時占用空間大。
而選擇器優(yōu)勢是占用空間小(選項下拉選擇時才顯示),缺點是必須要下拉時才能顯示所有選項。
2. 單選框
單選框HTML代碼如下:
<el-radio v-model="radio1" label="male">男</el-radio>
<el-radio v-model="radio1" label="female">女</el-radio>
選中:{{radio1}}
<el-divider></el-divider>
需要注意,漢字部分表示顯示內容,label表示選中的值,v-model表示綁定的JS變量。JS部分代碼:
radio1: 'male',
效果如下:

3. 單選框樣式
單選框添加按鈕邊框樣式,通過border屬性實現。
HTML代碼:
<el-radio v-model="radio2" label="basketball" border>籃球</el-radio>
<el-radio v-model="radio2" label="football" border>足球</el-radio>
選中:{{radio2}}
<el-divider></el-divider>
JS代碼:
radio2: 'basketball',
效果如下:

4. 單選框組
可以使用el-radio-group標簽將單選框包圍起來,這樣只需要設置一個v-model綁定變量即可。這樣的方式會將同一組的選項放在一個標簽內,使用起來更加符合習慣。示例:
HTML代碼:
<el-radio-group v-model="radio3">
<el-radio label="male">男</el-radio>
<el-radio label="female">女</el-radio>
</el-radio-group>
選中:{{radio3}}
<el-divider></el-divider>
JS代碼:
radio3: 'male',
效果:

4. 單選框組樣式
Element為單選框組也提供了按鈕樣式,看起來更加富有科技感。
HTML代碼:
<el-radio-group v-model="radio4">
<el-radio-button label="chinese">語文</el-radio-button>
<el-radio-button label="math">數學</el-radio-button>
<el-radio-button label="english">英語</el-radio-button>
</el-radio-group>
<el-divider></el-divider>
JS代碼:
radio4: 'chinese',
效果:

5. 尺寸調節(jié)
針對按鈕樣式的單選框和單選框組,可以使用size調整其大小,例如:
<el-radio-group v-model="radio4" size="medium">
<el-radio-button label="chinese">語文</el-radio-button>
<el-radio-button label="math">數學</el-radio-button>
<el-radio-button label="english">英語</el-radio-button>
</el-radio-group>
<el-radio-group v-model="radio4" size="small">
<el-radio-button label="chinese">語文</el-radio-button>
<el-radio-button label="math">數學</el-radio-button>
<el-radio-button label="english">英語</el-radio-button>
</el-radio-group>
<el-radio-group v-model="radio4" size="mini">
<el-radio-button label="chinese">語文</el-radio-button>
<el-radio-button label="math">數學</el-radio-button>
<el-radio-button label="english">英語</el-radio-button>
</el-radio-group>
<el-divider></el-divider>
效果如下:

6. 綁定值變化事件
當綁定值發(fā)生變化時,可以通過@change指定觸發(fā)的事件方法。例如:
HTML代碼:
<el-radio @change="sexChange" v-model="radio1" label="male">男</el-radio>
<el-radio @change="sexChange" v-model="radio1" label="female">女</el-radio>
<el-divider></el-divider>
<el-radio-group v-model="radio4" @change="courseChange">
<el-radio-button label="chinese">語文</el-radio-button>
<el-radio-button label="math">數學</el-radio-button>
<el-radio-button label="english">英語</el-radio-button>
</el-radio-group>
JS代碼:
export default {
data() {
return {
radio1: 'male',
radio2: 'basketball',
radio3: 'male',
radio4: 'chinese',
};
},
methods: {
sexChange() {
console.log("sexChange");
},
courseChange() {
console.log("courseChange");
}
}
}
當選中項變化時,就會觸發(fā)對應的methods中定義的方法。
注意:
el-radio提供了比較多的單選按鈕實現方式,建議還是使用單選框組,代碼結構更加清晰容易管理。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

