vue中mint-ui的使用方法
mint-ui在vue中的使用,供大家參考,具體內(nèi)容如下
首先放上mint-ui中文文檔
近來在使用mint-ui,發(fā)現(xiàn)部分插件在講解上并不是很詳細,部分實例找不到使用的代碼。github上面的分享,里面都是markdown文件,內(nèi)容就是網(wǎng)上的文檔
剛好自己在用,網(wǎng)上能找到的資料也不是很詳細,自己寫寫咯。持續(xù)更新...emmmmm,應(yīng)該可以吧,我這么懶。希望能給別人帶來幫助。
介紹一下mint-ui的特性
特性介紹
- Mint UI 包含豐富的 CSS 和 JS 組件,能夠滿足日常的移動端開發(fā)需要。通過它,可以快速構(gòu)建出風格統(tǒng)一的頁面,提升開發(fā)效率。
- 真正意義上的按需加載組件??梢灾患虞d聲明過的組件及其樣式文件,無需再糾結(jié)文件體積過大。
- 考慮到移動端的性能門檻,Mint UI 采用 CSS3 處理各種動效,避免瀏覽器進行不必要的重繪和重排,從而使用戶獲得流暢順滑的體驗。
- 依托 Vue.js 高效的組件化方案,Mint UI 做到了輕量化。即使全部引入,壓縮后的文件體積也僅有 ~30kb (JS + CSS) gzip。
這個組件庫,適合于基于vue的手機頁面開發(fā)。
1.cell的使用
先丟個圖↓
在做switch的時候,想做成文字和switch在列表的兩側(cè)。效果出不來,發(fā)現(xiàn)有很多人跟我一樣死命的鉆switch的文檔,以及找switch的相關(guān)資料。然后實際上,應(yīng)該用cell才對。
<mt-cell title="開關(guān)狀態(tài)"> <mt-switch v-model="openValue" @change="changeStatus"></mt-switch> </mt-cell>
利用cell的布局,和switch相結(jié)合。產(chǎn)生下面的結(jié)果。
2.Infinite scroll 和 Navbar結(jié)合使用
Navbar 是這樣的↓
Infinite scroll 是這樣的↓
兩個結(jié)合起來,就是把Infinite scroll嵌套在 <mt-tab-container-item id="1"></mt-tab-container-item>里面,然后效果就出來了。
簡單的就是醬紫的。
<mt-navbar v-model="selected" > <mt-tab-item id="1">選項一</mt-tab-item> <mt-tab-item id="2">選項二</mt-tab-item> </mt-navbar> <mt-tab-container v-model="selected"> <mt-tab-container-item id="1"> <div v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance="10" class="content" > </div> </mt-tab-container-item> <mt-tab-container-item id="2"> <div v-infinite-scroll="loadMoreReceive" infinite-scroll-disabled="loadingReceive" infinite-scroll-distance="10" class="content" > </div> </mt-tab-container-item> </mt-tab-container>
這樣基本頁面就出來了。
有個小問題就是,這是一個頁面,滾動條是共用的。也就是說,你在選項卡一拉出來好幾頁數(shù)據(jù)之后,再到選項卡二,滾動條的位置是不會變的,你的選項卡二的內(nèi)容,會被拉出來好多頁的數(shù)據(jù)。如果某個選項卡的數(shù)據(jù)比較少,會影響到其他選項卡的數(shù)據(jù)加載。
這個問題,找了半天,最后發(fā)現(xiàn)一個和簡單的辦法。在Infinite-Scroll里面,添加一個v-if=selected == id,把Infinite-scroll和選項卡的id、selected相結(jié)合,選中的selected與id對應(yīng)的時候,才進行對應(yīng)的Infinite-Scroll。
Infinite-Scroll的代碼如下:
<div v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance="10" class="content" v-if="selected == 1" >
根據(jù)需要,v-if的條件進行修改。
v-infinite-scroll 所綁定的方法,會在vue的mounted之后,before之前第一次執(zhí)行,不需要另外調(diào)用。
3.Picker,地址三級聯(lián)動
這里有個很簡潔的三級聯(lián)動,之前要用的時候沒找到。自己寫的一個,好麻煩。先放圖
首先獲取地址
getRegion(){ var root=this; <!-- 通過/region 接口獲取三級地址,然后存入regionArr --> http.get("/region").then(function (data) { root.regionArr=data.data.data; <!-- 存放省 --> for(var i=0;i<root.regionArr.length;i++){ root.region_province[i]=root.regionArr[i].value; } <!-- 存放市 --> for(var i=0;i<root.regionArr[0].children.length;i++){ root.region_city[i]=root.regionArr[0].children[i].value; } <!-- 存放區(qū) --> for(var i=0;i<root.regionArr[0].children[0].children.length;i++){ root.region_zone[i]=root.regionArr[0].children[0].children[i].value; } root.region=[ { flex: 1, values: root.region_province, textAlign: 'left', className:'picker_Slot' }, { divider: true, content: '-', className: 'slot2' }, { flex: 1, values: root.region_city, textAlign: 'center', className:'picker_Slot' }, { divider: true, content: '-', className: 'slot2' }, { flex: 1, values: root.region_zone, textAlign: 'right', className:'picker_Slot' } ] }); },
然后設(shè)置三級地址
onValuesChange(picker, values) { var root=this; var str_1=[]; var str_2=[]; for(var i in root.regionArr){ // 獲取省,并重置市級名稱 if(root.regionArr[i].value == values[0]){ for(var j in root.regionArr[i].children){ str_1.push(root.regionArr[i].children[j].value); // 獲取市級,并重置區(qū)級的名稱 if(root.regionArr[i].children[j].value == values[1]){ // 當市級下不存在區(qū)名市,置空。 if(root.regionArr[i].children[j].children != null){ for(var k in root.regionArr[i].children[j].children){ str_2.push(root.regionArr[i].children[j].children[k].value); } }else{ str_2.push(" "); } } } picker.setSlotValues(1, str_1); picker.setSlotValues(2, str_2); } } // 賦值,初始時置為上一頁返回的值 root.$set(root.printerMessage,'province',values[0] == null ? root.printerMessage.province : values[0]); root.$set(root.printerMessage,'city',values[1] == null ? root.printerMessage.city : values[1]); root.$set(root.printerMessage,'area',values[2] == null ? root.printerMessage.area : values[2]); }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue.js使用this.$confirm換行顯示提示信息實例
在編寫Web應(yīng)用時,實現(xiàn)多行文本顯示通常需要用到HTML標簽或JavaScript特定函數(shù),本文介紹了如何使用JavaScript的$createElement函數(shù)來創(chuàng)建多行文本顯示,$createElement可以創(chuàng)建任何HTML標簽,使得在JavaScript中控制HTML輸出更加靈活,通過簡單的代碼示例2024-10-10Vuejs第十一篇組件之slot內(nèi)容分發(fā)實例詳解
這篇文章主要介紹了Vuejs第十一篇之slot內(nèi)容分發(fā)組件詳解的相關(guān)資料2016-09-09Vue發(fā)送Formdata數(shù)據(jù)及NodeJS接收方式
這篇文章主要介紹了Vue發(fā)送Formdata數(shù)據(jù)及NodeJS接收方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06徹底搞懂并解決vue-cli4中圖片顯示的問題實現(xiàn)
這篇文章主要介紹了徹底搞懂并解決vue-cli4中圖片顯示的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08前端配合后端實現(xiàn)Vue路由權(quán)限的方法實例
一開始我還以為vue的路由只能用在工程化的項目里面,其實不然,下面這篇文章主要給大家介紹了關(guān)于前端配合后端實現(xiàn)Vue路由權(quán)限的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-05-05