解決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選擇器也可以從多個選項中選擇一個,單選框的優勢是可以在界面上同時顯示所有選項,缺點是選項多時占用空間大。
而選擇器優勢是占用空間小(選項下拉選擇時才顯示),缺點是必須要下拉時才能顯示所有選項。
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. 尺寸調節
針對按鈕樣式的單選框和單選框組,可以使用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. 綁定值變化事件
當綁定值發生變化時,可以通過@change
指定觸發的事件方法。例如:
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"); } } }
當選中項變化時,就會觸發對應的methods中定義的方法。
註意:
el-radio提供瞭比較多的單選按鈕實現方式,建議還是使用單選框組,代碼結構更加清晰容易管理。
總結
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- vue中radio單選框如何實現取消選中狀態問題
- v-html渲染組件問題
- avue實現自定義搜索欄及清空搜索事件的實踐
- element table 表格控件實現單選功能
- vue中實現可編輯table及其中加入下拉選項