element-ui下拉菜單組件Dropdown的示例代碼
項(xiàng)目中使用了element ui的頁(yè)面組件。
在使用dropdown組件的時(shí)候,發(fā)現(xiàn)了我自己的一些問(wèn)題,這里記錄一下,文末有整理好的我自己用的一個(gè)demo。可下載。
基礎(chǔ)的使用方法可以參照官方文檔:
這里邊給出的解釋還是很全的,只是,剛剛接觸的同學(xué)(比如我),有些地方注意不到,有些坑還得踩一踩。
首先上代碼:
先是html部分:
<div?id='app'?style="margin:50px;">
????????<!--?鼠標(biāo)滑過(guò)顯示下拉列表?這里設(shè)置了觸發(fā)的方式,注意觸發(fā)方式不能使用':'綁定,以及綁定了觸發(fā)選項(xiàng)時(shí)的方法?-->
????????<el-dropdown?trigger="hover"?@command="handleCommand"??>
????????????<span?class="el-dropdown-link?el-input__inner"??style="display:block;width:200px;">
????????????????<!--?沒(méi)有選項(xiàng)的時(shí)候,默認(rèn)顯示的placeholder?-->
????????????????<span?v-if="!position"?style="color:lightslategray">請(qǐng)選擇一個(gè)選項(xiàng)</span>
????????????????<!--?顯示已經(jīng)選擇的選項(xiàng),目前這里是單選?-->
????????????????<span?v-else>{{position}}</span>
????????????????<!--?下拉菜單選擇框右邊的icon?-->
????????????????<span?style="display:block;float:?right;">
????????????????????<img?src="./icon.png"?alt=""?style="margin-top:7px;">
????????????????</span>
????????????</span>
????????????<el-dropdown-menu?>
????????????????<!--?選擇'請(qǐng)選擇‘這個(gè)選項(xiàng),他沒(méi)有command這個(gè)屬性,所以選擇他相當(dāng)于,清空已經(jīng)選擇的選項(xiàng)?-->
????????????????<el-dropdown-item>請(qǐng)選擇</el-dropdown-item>
????????????????<!--?選項(xiàng)的數(shù)據(jù)列表循環(huán),這里的屬性,只有commang必須要使用':'綁定才能使用,這個(gè)坑了我好久,所以,為了不忘記這個(gè)事情,他所有的屬性,不管是否需要綁定,我們都使用':'綁定,這個(gè)總沒(méi)有錯(cuò)?-->
????????????????<el-dropdown-item??v-for="(item,index)?in?options"?:command='item.key'?:divided='true'>
????????????????????{{item.label}}-{{item.key}}
????????????????</el-dropdown-item>
?
????????????</el-dropdown-menu>
????????</el-dropdown>
????</div>上邊的備注我寫的還算完整,基本上看完了就能明白我的設(shè)計(jì)思想。
這里重點(diǎn)說(shuō)一下我遇到的一個(gè)最大的坑:
組件的command這個(gè)屬性,使用的時(shí)候,必須使用v-bind或者 :來(lái)綁定,不然你給他賦變量,他沒(méi)有辦法解析。
其余的屬性,比如:divided(分割線)在使用的時(shí)候,綁不綁定都行。
組件的trigger屬性不能使用v-bind或者:來(lái)綁定,不然會(huì)報(bào)錯(cuò):

以上兩點(diǎn)一定要注意。
Js部分代碼:
//?我們聲明一個(gè)數(shù)據(jù)對(duì)象,在創(chuàng)建VUE實(shí)例的時(shí)候,綁定到vue的數(shù)據(jù)中,這里的數(shù)據(jù)是響應(yīng)式的,就是當(dāng)數(shù)據(jù)發(fā)生改變時(shí),頁(yè)面不需要刷新就可以發(fā)生改變。
????var?obj?=?{
????????//?下拉列表顯示的數(shù)據(jù)
????????options:?[{
????????????key:'1',
????????????value:?'選項(xiàng)1',
????????????label:?'黃金糕'
????????},?{
????????????key:'2',
????????????value:?'選項(xiàng)2',
????????????label:?'雙皮奶'
????????},?{
????????????key:'3',
????????????value:?'選項(xiàng)3',
????????????label:?'蚵仔煎'
????????},?{
????????????key:'4',
????????????value:?'選項(xiàng)4',
????????????label:?'龍須面'
????????},?{
????????????key:'5',
????????????value:?'選項(xiàng)5',
????????????label:?'北京烤鴨'
????????}],
????????//?選中項(xiàng)的label
????????position:'',
????};
????//?創(chuàng)建VUE實(shí)例
????var?app?=?new?Vue({
????????el:?'#app',?//?綁定元素
????????data:?obj,
????????methods:?{
????????????/**
?????????????*?@name?選擇選項(xiàng)的時(shí)候觸發(fā)的事件(只能傳遞一個(gè)參數(shù))?
?????????????*/
????????????handleCommand(command)
????????????{
????????????????var?self?=?this;
????????????????//?如果沒(méi)有傳遞command,那么就是清空選項(xiàng)
????????????????if(!command)
????????????????{
????????????????????self.position?=?'';
????????????????}
????????????????else
????????????????{
????????????????????//?循環(huán)json數(shù)組,我這里的目的是,將你選中的選項(xiàng)的label顯示到框中。
????????????????????for?(var?i?=?0;?i?<?self.options.length;?i++)?
????????????????????{
????????????????????????if?(self.options[i].key?==?command)?
????????????????????????{
????????????????????????????self.position?=?self.options[i].label;
????????????????????????}
????????????????????}
????????????????}
????????????},
????????},
????});Js部分可能就沒(méi)有什么了,沒(méi)有什么太具體的邏輯,只有一個(gè)顯示。具體邏輯在你使用的時(shí)候,需要根據(jù)自己的實(shí)際情況來(lái)添加。
最終效果如下圖所示:

到此這篇關(guān)于element-ui下拉菜單組件Dropdown的文章就介紹到這了,更多相關(guān)element-ui下拉菜單Dropdown內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中實(shí)現(xiàn)先請(qǐng)求數(shù)據(jù)再渲染dom分享
下面小編就為大家分享一篇vue中實(shí)現(xiàn)先請(qǐng)求數(shù)據(jù)再渲染dom分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
在vue項(xiàng)目中,將juery設(shè)置為全局變量的方法
今天小編就為大家分享一篇在vue項(xiàng)目中,將juery設(shè)置為全局變量的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue3實(shí)現(xiàn)移動(dòng)端滑動(dòng)模塊
這篇文章主要為大家詳細(xì)介紹了vue3實(shí)現(xiàn)移動(dòng)端滑動(dòng)模塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09
vue用復(fù)選框?qū)崿F(xiàn)組件且支持單選和多選操作方式
這篇文章主要介紹了vue用復(fù)選框?qū)崿F(xiàn)組件且支持單選和多選操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
TypeScript踩坑之TS7053的問(wèn)題及解決
這篇文章主要介紹了TypeScript踩坑之TS7053的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
解決vue接口數(shù)據(jù)賦值給data沒(méi)有反應(yīng)的問(wèn)題
今天小編就為大家分享一篇解決vue接口數(shù)據(jù)賦值給data沒(méi)有反應(yīng)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
electron-vue+electron-updater實(shí)現(xiàn)自動(dòng)更新(步驟源碼)
這篇文章主要介紹了electron-vue+electron-updater實(shí)現(xiàn)自動(dòng)更新,步驟源碼包括autoUpdater.js操控更新js文件,main.js也就是package.json內(nèi)的main指向的js文件,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10

