vue中mint-ui的使用方法
mint-ui在vue中的使用,供大家參考,具體內(nèi)容如下
首先放上mint-ui中文文檔
近來(lái)在使用mint-ui,發(fā)現(xiàn)部分插件在講解上并不是很詳細(xì),部分實(shí)例找不到使用的代碼。github上面的分享,里面都是markdown文件,內(nèi)容就是網(wǎng)上的文檔
剛好自己在用,網(wǎng)上能找到的資料也不是很詳細(xì),自己寫寫咯。持續(xù)更新...emmmmm,應(yīng)該可以吧,我這么懶。希望能給別人帶來(lái)幫助。
介紹一下mint-ui的特性
特性介紹
- Mint UI 包含豐富的 CSS 和 JS 組件,能夠滿足日常的移動(dòng)端開發(fā)需要。通過(guò)它,可以快速構(gòu)建出風(fēng)格統(tǒng)一的頁(yè)面,提升開發(fā)效率。
- 真正意義上的按需加載組件??梢灾患虞d聲明過(guò)的組件及其樣式文件,無(wú)需再糾結(jié)文件體積過(guò)大。
- 考慮到移動(dòng)端的性能門檻,Mint UI 采用 CSS3 處理各種動(dòng)效,避免瀏覽器進(jìn)行不必要的重繪和重排,從而使用戶獲得流暢順滑的體驗(yàn)。
- 依托 Vue.js 高效的組件化方案,Mint UI 做到了輕量化。即使全部引入,壓縮后的文件體積也僅有 ~30kb (JS + CSS) gzip。
這個(gè)組件庫(kù),適合于基于vue的手機(jī)頁(yè)面開發(fā)。
1.cell的使用
先丟個(gè)圖↓

在做switch的時(shí)候,想做成文字和switch在列表的兩側(cè)。效果出不來(lái),發(fā)現(xiàn)有很多人跟我一樣死命的鉆switch的文檔,以及找switch的相關(guān)資料。然后實(shí)際上,應(yīng)該用cell才對(duì)。
<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 是這樣的↓

兩個(gè)結(jié)合起來(lái),就是把Infinite scroll嵌套在 <mt-tab-container-item id="1"></mt-tab-container-item>里面,然后效果就出來(lái)了。
簡(jiǎn)單的就是醬紫的。
<mt-navbar v-model="selected" > <mt-tab-item id="1">選項(xiàng)一</mt-tab-item> <mt-tab-item id="2">選項(xiàng)二</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>
這樣基本頁(yè)面就出來(lái)了。

有個(gè)小問(wèn)題就是,這是一個(gè)頁(yè)面,滾動(dòng)條是共用的。也就是說(shuō),你在選項(xiàng)卡一拉出來(lái)好幾頁(yè)數(shù)據(jù)之后,再到選項(xiàng)卡二,滾動(dòng)條的位置是不會(huì)變的,你的選項(xiàng)卡二的內(nèi)容,會(huì)被拉出來(lái)好多頁(yè)的數(shù)據(jù)。如果某個(gè)選項(xiàng)卡的數(shù)據(jù)比較少,會(huì)影響到其他選項(xiàng)卡的數(shù)據(jù)加載。
這個(gè)問(wèn)題,找了半天,最后發(fā)現(xiàn)一個(gè)和簡(jiǎn)單的辦法。在Infinite-Scroll里面,添加一個(gè)v-if=selected == id,把Infinite-scroll和選項(xiàng)卡的id、selected相結(jié)合,選中的selected與id對(duì)應(yīng)的時(shí)候,才進(jìn)行對(duì)應(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的條件進(jìn)行修改。
v-infinite-scroll 所綁定的方法,會(huì)在vue的mounted之后,before之前第一次執(zhí)行,不需要另外調(diào)用。
3.Picker,地址三級(jí)聯(lián)動(dòng)
這里有個(gè)很簡(jiǎn)潔的三級(jí)聯(lián)動(dòng),之前要用的時(shí)候沒找到。自己寫的一個(gè),好麻煩。先放圖

首先獲取地址
getRegion(){
var root=this;
<!-- 通過(guò)/region 接口獲取三級(jí)地址,然后存入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è)置三級(jí)地址
onValuesChange(picker, values) {
var root=this;
var str_1=[];
var str_2=[];
for(var i in root.regionArr){
// 獲取省,并重置市級(jí)名稱
if(root.regionArr[i].value == values[0]){
for(var j in root.regionArr[i].children){
str_1.push(root.regionArr[i].children[j].value);
// 獲取市級(jí),并重置區(qū)級(jí)的名稱
if(root.regionArr[i].children[j].value == values[1]){
// 當(dāng)市級(jí)下不存在區(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);
}
}
// 賦值,初始時(shí)置為上一頁(yè)返回的值
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]);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)監(jiān)聽數(shù)值的變化,并捕捉到
這篇文章主要介紹了vue實(shí)現(xiàn)監(jiān)聽數(shù)值的變化,并捕捉到問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
項(xiàng)目部署后前端vue代理失效問(wèn)題解決辦法
這篇文章主要給大家介紹了關(guān)于項(xiàng)目部署后前端vue代理失效問(wèn)題的解決辦法,文中通過(guò)圖文以及代碼示例將解決的辦法介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02
vue防止花括號(hào){{}}閃爍v-text和v-html、v-cloak用法示例
這篇文章主要介紹了vue防止花括號(hào){{}}閃爍v-text和v-html、v-cloak用法,結(jié)合實(shí)例形式分析了vue.js使用v-text和v-html、v-cloak防止花括號(hào){{}}閃爍的解決方法,需要的朋友可以參考下2019-03-03
vue使用Google Recaptcha驗(yàn)證的實(shí)現(xiàn)示例
我們最近的項(xiàng)目中需要使用谷歌機(jī)器人驗(yàn)證,所以就動(dòng)手實(shí)現(xiàn)一下,本文就來(lái)詳細(xì)的介紹一下vue Google Recaptcha驗(yàn)證,感興趣的可以了解一下2021-08-08
使用Vue開發(fā)一個(gè)實(shí)時(shí)性時(shí)間轉(zhuǎn)換指令
我們就來(lái)實(shí)現(xiàn)這樣一個(gè)Vue自定義指令v-time,將表達(dá)式傳入的時(shí)間戳實(shí)時(shí)轉(zhuǎn)換為相對(duì)時(shí)間。下面小編給大家?guī)?lái)了使用Vue開發(fā)一個(gè)實(shí)時(shí)性時(shí)間轉(zhuǎn)換指令,需要的朋友參考下吧2018-01-01
vue3使用別名報(bào)錯(cuò)問(wèn)題的解決辦法(vetur插件報(bào)錯(cuò)問(wèn)題)
最近在寫一個(gè)購(gòu)物網(wǎng)站使用vue,使用中遇到了問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于vue3使用別名報(bào)錯(cuò)問(wèn)題的解決辦法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07

