Element中Select選擇器的實(shí)現(xiàn)
本篇是關(guān)于下拉框相關(guān)知識(shí)點(diǎn)總結(jié)
今天來整理一下目前最喜歡的el組件 el-select:Element官網(wǎng)
最近真的做夢都是這個(gè)組件的相關(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)我們遍歷的是一個(gè)數(shù)組對象,其中顯示出來的是label,但是真正對應(yīng)的值卻是value屬性
在項(xiàng)目中經(jīng)常有這樣的下拉框,讓我們選擇,有兩種情況,一種下拉框是靜態(tài)的,就是下拉框的數(shù)據(jù)是前端寫好的,第二種更加有趣,是動(dòng)態(tài)的,是從數(shù)據(jù)庫中獲取的
在我們實(shí)際開發(fā)過程中這個(gè)下拉框的屬性大部分是由后臺(tái)查詢?nèi)〉降?,舉個(gè)案例如下
我們顯示出來的是name屬性,但是當(dāng)我們要做其它操作如查詢的時(shí)候我們真正傳給后臺(tái)的是id值
{
"content": [
? {
? "id": "001",
? "name": "辰兮",
? },
? {
? "id": "002",
? "name": "辰兮要努力",
? },
? {
? "id": "003",
? "name": "辰兮打卡",
? }
],
"count": 3,
"code": "success",
"message": "成功"
}
其實(shí)這里我們多實(shí)踐也可以更好的了解面向?qū)ο缶幊踢@一個(gè)概念,JavaScript就是一個(gè)面向?qū)ο缶幊痰恼Z言,我們后臺(tái)發(fā)送給前端的就是一個(gè)有一個(gè)數(shù)組對象,我們只是展示了其中對象中的某一個(gè)屬性
來分析一下前端的思路
前端定義一個(gè)數(shù)組來接這個(gè)對象
options = []
this.options = res.content;
如何取到值
v-for="item in options"
:key="item.id"
:label="item.name"
:value="item.id"
簡單的總結(jié)一下 options相當(dāng)于一個(gè)數(shù)組對象的集合,遍歷出來顯示的是具體的label,但是真實(shí)的值是value屬性代表的
來分享一下最最最常用的屬性,我一般都會(huì)加上,詳情大家也參考官網(wǎng)即可比較基礎(chǔ)
clearable 這個(gè)我們常用 意思是可以清除

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

關(guān)于對應(yīng)的鉤子函數(shù)的應(yīng)用案例:這個(gè)是內(nèi)置的,我們改變某一個(gè)屬性的時(shí)候我們目的就是獲取它的值或者執(zhí)行什么方法,這里用@change或者@remove-tag都是可以直接使用的,詳情大家自己實(shí)踐
remove-tag 代表:多選模式下移除tag時(shí)觸發(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)文章
vue實(shí)現(xiàn)可移動(dòng)的懸浮按鈕
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)可移動(dòng)的懸浮按鈕,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
vue緩存之keep-alive的理解和應(yīng)用詳解
這篇文章主要介紹了vue緩存之keep-alive的理解和應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
vue3響應(yīng)式轉(zhuǎn)換常用API操作示例代碼
在Vue 3中,響應(yīng)式系統(tǒng)得到了顯著改善,包括使用Composition API時(shí)更加靈活的狀態(tài)管理,這篇文章主要介紹了vue3響應(yīng)式轉(zhuǎn)換常用API操作示例代碼,需要的朋友可以參考下2024-08-08
vue如何解決循環(huán)引用組件報(bào)錯(cuò)的問題
這篇文章主要介紹了vue如何解決循環(huán)引用組件報(bào)錯(cuò)的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
vue項(xiàng)目實(shí)現(xiàn)通過ip地址訪問和localhost訪問方式
這篇文章主要介紹了vue項(xiàng)目實(shí)現(xiàn)通過ip地址訪問和localhost訪問方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
vue3通過canvas實(shí)現(xiàn)圖片圈選功能
這篇文章將給大家詳細(xì)介紹了vue3如何通過canvas實(shí)現(xiàn)圖片圈選功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴快來跟隨小編一起學(xué)習(xí)一下吧2023-12-12
Vue實(shí)現(xiàn)導(dǎo)出word文檔的示例詳解
這篇文章主要為大家詳細(xì)介紹了Vue如何使用第三方庫file-saver和html-docx-js實(shí)現(xiàn)導(dǎo)出word文檔的效果,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02
Vue3在css中使用v-bind綁定js/ts變量(在scss和less中使用方式)
v-bind是Vue.js中的一個(gè)核心指令,用于在Vue組件或DOM元素上綁定數(shù)據(jù)屬性,下面這篇文章主要給大家介紹了關(guān)于Vue3在css中使用v-bind綁定js/ts變量的相關(guān)資料,也可以在scss和less中使用方式,需要的朋友可以參考下2024-04-04

