Element中Select選擇器的實(shí)現(xiàn)
本篇是關(guān)于下拉框相關(guān)知識點(diǎn)總結(jié)
今天來整理一下目前最喜歡的el組件 el-select:Element官網(wǎng)
最近真的做夢都是這個組件的相關(guān)屬性clearable和filterable和對應(yīng)的鉤子函數(shù)@change,所以趁著整理下來吧以免夜長夢多

來我們一起學(xué)習(xí)一下element給我們提供的相關(guān)案例
<template>
<el-select v-model="value" placeholder="請選擇">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</template>
<script>
export default {
data() {
return {
options: [{
value: '選項(xiàng)1',
label: '黃金糕'
}, {
value: '選項(xiàng)2',
label: '雙皮奶'
}, {
value: '選項(xiàng)3',
label: '蚵仔煎'
}, {
value: '選項(xiàng)4',
label: '龍須面'
}, {
value: '選項(xiàng)5',
label: '北京烤鴨'
}],
value: ''
}
}
}
</script>
很容易發(fā)現(xiàn)我們遍歷的是一個數(shù)組對象,其中顯示出來的是label,但是真正對應(yīng)的值卻是value屬性
在項(xiàng)目中經(jīng)常有這樣的下拉框,讓我們選擇,有兩種情況,一種下拉框是靜態(tài)的,就是下拉框的數(shù)據(jù)是前端寫好的,第二種更加有趣,是動態(tài)的,是從數(shù)據(jù)庫中獲取的
在我們實(shí)際開發(fā)過程中這個下拉框的屬性大部分是由后臺查詢?nèi)〉降?,舉個案例如下
我們顯示出來的是name屬性,但是當(dāng)我們要做其它操作如查詢的時候我們真正傳給后臺的是id值
{
"content": [
? {
? "id": "001",
? "name": "辰兮",
? },
? {
? "id": "002",
? "name": "辰兮要努力",
? },
? {
? "id": "003",
? "name": "辰兮打卡",
? }
],
"count": 3,
"code": "success",
"message": "成功"
}
其實(shí)這里我們多實(shí)踐也可以更好的了解面向?qū)ο缶幊踢@一個概念,JavaScript就是一個面向?qū)ο缶幊痰恼Z言,我們后臺發(fā)送給前端的就是一個有一個數(shù)組對象,我們只是展示了其中對象中的某一個屬性
來分析一下前端的思路
前端定義一個數(shù)組來接這個對象
options = []
this.options = res.content;
如何取到值
v-for="item in options"
:key="item.id"
:label="item.name"
:value="item.id"
簡單的總結(jié)一下 options相當(dāng)于一個數(shù)組對象的集合,遍歷出來顯示的是具體的label,但是真實(shí)的值是value屬性代表的
來分享一下最最最常用的屬性,我一般都會加上,詳情大家也參考官網(wǎng)即可比較基礎(chǔ)
clearable 這個我們常用 意思是可以清除

filterable 代表我們可以搜索,數(shù)據(jù)量大的時候我們進(jìn)行相關(guān)操作

關(guān)于對應(yīng)的鉤子函數(shù)的應(yīng)用案例:這個是內(nèi)置的,我們改變某一個屬性的時候我們目的就是獲取它的值或者執(zhí)行什么方法,這里用@change或者@remove-tag都是可以直接使用的,詳情大家自己實(shí)踐
remove-tag 代表:多選模式下移除tag時觸發(fā) /移除的tag值
如何使用@change @remove-tag
<el-select v-model="value1" multiple @change="changeValue()" @remove-tag="deleteValue">
<el-option v-for="item in content" :key="item.sId" :label="item.sName" :value="item.sId"> </el-option>
</el-select>

相關(guān)文章
buildAdmin開源項(xiàng)目引入四種圖標(biāo)方式詳解
這篇文章主要為大家介紹了buildAdmin開源項(xiàng)目引入四種圖標(biāo)方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Nginx配置Vue項(xiàng)目,無法按路徑跳轉(zhuǎn)及刷新404的解決方案
這篇文章主要介紹了Nginx配置Vue項(xiàng)目,無法按路徑跳轉(zhuǎn)及刷新404的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
element中el-table表頭通過header-row-style設(shè)置樣式
有些時候需要給element-ui表頭設(shè)置不同樣式,本文主要介紹了element中el-table表頭通過header-row-style設(shè)置樣式,具有一定的參考價值,感興趣的可以了解一下2024-01-01
vue-cli3+typescript新建一個項(xiàng)目的思路分析
這篇文章主要介紹了vue-cli3+typescript新建一個項(xiàng)目的思路,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
Vue.js如何利用v-for循環(huán)生成動態(tài)標(biāo)簽
這篇文章主要給大家介紹了關(guān)于Vue.js如何利用v-for循環(huán)生成動態(tài)標(biāo)簽的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-01-01
vue2項(xiàng)目增加eslint配置代碼規(guī)范示例
這篇文章主要為大家介紹了vue2項(xiàng)目增加eslint配置代碼規(guī)范示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

