element-ui下拉菜單組件Dropdown的示例代碼
項目中使用了element ui的頁面組件。
在使用dropdown組件的時候,發(fā)現(xiàn)了我自己的一些問題,這里記錄一下,文末有整理好的我自己用的一個demo。可下載。
基礎(chǔ)的使用方法可以參照官方文檔:
這里邊給出的解釋還是很全的,只是,剛剛接觸的同學(比如我),有些地方注意不到,有些坑還得踩一踩。
首先上代碼:
先是html部分:
<div?id='app'?style="margin:50px;"> ????????<!--?鼠標滑過顯示下拉列表?這里設置了觸發(fā)的方式,注意觸發(fā)方式不能使用':'綁定,以及綁定了觸發(fā)選項時的方法?--> ????????<el-dropdown?trigger="hover"?@command="handleCommand"??> ????????????<span?class="el-dropdown-link?el-input__inner"??style="display:block;width:200px;"> ????????????????<!--?沒有選項的時候,默認顯示的placeholder?--> ????????????????<span?v-if="!position"?style="color:lightslategray">請選擇一個選項</span> ????????????????<!--?顯示已經(jī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?> ????????????????<!--?選擇'請選擇‘這個選項,他沒有command這個屬性,所以選擇他相當于,清空已經(jīng)選擇的選項?--> ????????????????<el-dropdown-item>請選擇</el-dropdown-item> ????????????????<!--?選項的數(shù)據(jù)列表循環(huán),這里的屬性,只有commang必須要使用':'綁定才能使用,這個坑了我好久,所以,為了不忘記這個事情,他所有的屬性,不管是否需要綁定,我們都使用':'綁定,這個總沒有錯?--> ????????????????<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>
上邊的備注我寫的還算完整,基本上看完了就能明白我的設計思想。
這里重點說一下我遇到的一個最大的坑:
組件的command這個屬性,使用的時候,必須使用v-bind或者 :來綁定,不然你給他賦變量,他沒有辦法解析。
其余的屬性,比如:divided(分割線)在使用的時候,綁不綁定都行。
組件的trigger屬性不能使用v-bind或者:來綁定,不然會報錯:
以上兩點一定要注意。
Js部分代碼:
//?我們聲明一個數(shù)據(jù)對象,在創(chuàng)建VUE實例的時候,綁定到vue的數(shù)據(jù)中,這里的數(shù)據(jù)是響應式的,就是當數(shù)據(jù)發(fā)生改變時,頁面不需要刷新就可以發(fā)生改變。 ????var?obj?=?{ ????????//?下拉列表顯示的數(shù)據(jù) ????????options:?[{ ????????????key:'1', ????????????value:?'選項1', ????????????label:?'黃金糕' ????????},?{ ????????????key:'2', ????????????value:?'選項2', ????????????label:?'雙皮奶' ????????},?{ ????????????key:'3', ????????????value:?'選項3', ????????????label:?'蚵仔煎' ????????},?{ ????????????key:'4', ????????????value:?'選項4', ????????????label:?'龍須面' ????????},?{ ????????????key:'5', ????????????value:?'選項5', ????????????label:?'北京烤鴨' ????????}], ????????//?選中項的label ????????position:'', ????}; ????//?創(chuàng)建VUE實例 ????var?app?=?new?Vue({ ????????el:?'#app',?//?綁定元素 ????????data:?obj, ????????methods:?{ ????????????/** ?????????????*?@name?選擇選項的時候觸發(fā)的事件(只能傳遞一個參數(shù))? ?????????????*/ ????????????handleCommand(command) ????????????{ ????????????????var?self?=?this; ????????????????//?如果沒有傳遞command,那么就是清空選項 ????????????????if(!command) ????????????????{ ????????????????????self.position?=?''; ????????????????} ????????????????else ????????????????{ ????????????????????//?循環(huán)json數(shù)組,我這里的目的是,將你選中的選項的label顯示到框中。 ????????????????????for?(var?i?=?0;?i?<?self.options.length;?i++)? ????????????????????{ ????????????????????????if?(self.options[i].key?==?command)? ????????????????????????{ ????????????????????????????self.position?=?self.options[i].label; ????????????????????????} ????????????????????} ????????????????} ????????????}, ????????}, ????});
Js部分可能就沒有什么了,沒有什么太具體的邏輯,只有一個顯示。具體邏輯在你使用的時候,需要根據(jù)自己的實際情況來添加。
最終效果如下圖所示:
到此這篇關(guān)于element-ui下拉菜單組件Dropdown的文章就介紹到這了,更多相關(guān)element-ui下拉菜單Dropdown內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VueX學習之modules和namespacedVueX詳細教程
這篇文章主要為大家介紹了VueX學習之modules和namespacedVueX詳細教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06vue如何通過點擊事件實現(xiàn)頁面跳轉(zhuǎn)詳解
頁面跳轉(zhuǎn),我們一般都通過路由跳轉(zhuǎn)實現(xiàn),通常情況下可直接使用router-link標簽實現(xiàn)頁面跳轉(zhuǎn),下面這篇文章主要給大家介紹了關(guān)于vue如何通過點擊事件實現(xiàn)頁面跳轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下2022-07-07Vue子組件內(nèi)的props對象參數(shù)配置方法
這篇文章主要介紹了?Vue?子組件內(nèi)的??props?對象里的?default?參數(shù)是如何定義Array、?Object?、或?Function?默認值的正確寫法說明,感興趣的朋友跟隨小編一起看看吧2022-08-08Vue3報錯‘defineProps‘?is?not?defined的解決方法
最近工作中遇到vue3中使用defineProps中報錯,飄紅,所以這篇文章主要給大家介紹了關(guān)于Vue3報錯‘defineProps‘?is?not?defined的解決方法,需要的朋友可以參考下2023-01-01