Vue移動(dòng)端UI庫(kù)之vant安裝使用教程
Vant是有贊開(kāi)源的一套基于Vue 2.0的移動(dòng)端的組件庫(kù)。 官方地址:https://develop365.gitlab.io/vant/zh-CN/home/ 1.Toast輕提示 Toast官方文檔:https://vant-contrib.gitee.io/vant/#/zh-CN/toast 2.Switch開(kāi)關(guān) Switch官方文檔:https://vant-contrib.gitee.io/vant/#/zh-CN/switch 3.Dialog彈出框 Dialog官方文檔:https://vant-contrib.gitee.io/vant/#/zh-CN/dialog 4.Area省市區(qū)選擇 Area官方文檔:https://vant-contrib.gitee.io/vant/#/zh-CN/area 省市區(qū)三級(jí)聯(lián)動(dòng)選擇,通常與彈出層組件配合使用。 彈出層官方文檔:https://vant-contrib.gitee.io/vant/#/zh-CN/popup 首先需要下載省市區(qū)的數(shù)據(jù)源,下載地址:https://github.com/youzan/vant/blob/dev/src/area/demo/area.js
第一步:
使用 Vant 時(shí),可以通過(guò) npm 進(jìn)行安裝:
npm i vant@latest-v2 -S
第二步:
按需引入你所需要的組件安裝babel插件
npm i babel-plugin-import -D
第三步配置按需引入,在babel.config.js文件中加入下面代碼

1.Toast輕提示
引入Toast組件
import { Toast } from 'vant';
Vue.use(Toast);
Toast(“請(qǐng)輸入手機(jī)號(hào)”)
效果演示

Toast.success(“請(qǐng)輸入手機(jī)號(hào)”)
效果演示

vantToast.fail(“請(qǐng)輸入手機(jī)號(hào)”)
效果演示


2.Switch開(kāi)關(guān)
<!-- 開(kāi)關(guān) --> <van-switch v-model="isOpin" size="60px" active-color="red" inactive-color="blue" > 開(kāi)關(guān) </van-switch> 定義開(kāi)關(guān)的相關(guān)狀態(tài)

3.Dialog彈出框
1. Vant UI 的 Dialog 組件簡(jiǎn)介
Dialog 是一個(gè)彈出框組件,用于在頁(yè)面上顯示提示信息、確認(rèn)操作等。它支持多種類(lèi)型(如普通對(duì)話框、確認(rèn)框、自定義內(nèi)容等),并且可以通過(guò) Promise 的方式處理用戶操作(如點(diǎn)擊確認(rèn)或取消按鈕)。
2. 基本用法
引入 Dialog 組件
在 Vue 項(xiàng)目中,可以通過(guò)以下方式引入 Dialog 組件:
import { Dialog } from 'vant';
Vue.use(Dialog);

1. Dialog.alert方法使用


2. Dialog.confirm方法使用


3. Dialog 組件提供了豐富的配置選項(xiàng),以下是一些常用的配置:
基本配置
1. title:對(duì)話框標(biāo)題,默認(rèn)值為 ''。 2. message:對(duì)話框內(nèi)容,可以是字符串或 HTML。 3. theme:按鈕主題,可選值為 default 或 round-button。 4. showCancelButton:是否顯示取消按鈕,默認(rèn)值為 false。 5. showConfirmButton:是否顯示確認(rèn)按鈕,默認(rèn)值為 true。 6. confirmButtonText:確認(rèn)按鈕的文本,默認(rèn)值為 '確認(rèn)'。 7. cancelButtonText:取消按鈕的文本,默認(rèn)值為 '取消'。
自定義樣式
1. className:自定義類(lèi)名,用于添加額外的樣式。 2. overlayClass:遮罩層的自定義類(lèi)名。 3. overlayStyle:遮罩層的自定義樣式。
回調(diào)函數(shù)
1. beforeClose:在關(guān)閉對(duì)話框之前觸發(fā)的回調(diào)函數(shù),可以用于阻止關(guān)閉。 2. onOpened:對(duì)話框完全打開(kāi)時(shí)觸發(fā)的回調(diào)函數(shù)。 3. onClosed:對(duì)話框完全關(guān)閉時(shí)觸發(fā)的回調(diào)函數(shù)。
4. 自定義內(nèi)容
如果需要顯示更復(fù)雜的內(nèi)容(如表單、圖片等),可以使用 Dialog.open 方法,并傳入一個(gè) Vue 組件作為內(nèi)容。
Dialog.open({
title: '自定義內(nèi)容',
message: '<div>這里是自定義的 HTML 內(nèi)容</div>',
theme: 'round-button',
showConfirmButton: true,
showCancelButton: true,
confirmButtonText: '確定',
cancelButtonText: '取消',
confirmButtonColor: '#007aff',
cancelButtonColor: '#999',
className: 'custom-dialog',
overlayClass: 'custom-overlay',
overlayStyle: {
backgroundColor: 'rgba(0, 0, 0, 0.5)'
},
beforeClose(action, done) {
if (action === 'confirm') {
// 確認(rèn)操作
console.log('確認(rèn)操作');
done(); // 關(guān)閉對(duì)話框
} else {
// 取消操作
console.log('取消操作');
done(); // 關(guān)閉對(duì)話框
}
},
onOpened() {
console.log('對(duì)話框已完全打開(kāi)');
},
onClosed() {
console.log('對(duì)話框已完全關(guān)閉');
}
});
樣式覆蓋:可以通過(guò) className 或 overlayClass 添加自定義樣式,也可以通過(guò)全局樣式覆蓋默認(rèn)樣式。
5.Area省市區(qū)選擇
van-area 組件簡(jiǎn)介:
van-area 是一個(gè)級(jí)聯(lián)選擇器,專(zhuān)門(mén)用于選擇省市區(qū)(或省市區(qū)縣)信息。它支持多級(jí)聯(lián)動(dòng)選擇,并且可以通過(guò)事件回調(diào)獲取用戶選擇的結(jié)果。
<template>
<div>
<div>
請(qǐng)選擇地區(qū):<span @click="isPopup=true">{{area ? area : "請(qǐng)選擇"}}</span>
</div>
<van-popup v-model="isPopup">
<van-area
title="選擇地區(qū)1:"
:area-list="areaList"
@cancel="isPopup=false"
@confirm="vantSelectArea"
/>
</van-popup>
</div>
</template>
<span @click=“isPopup=true”>:點(diǎn)擊時(shí)將 isPopup 設(shè)置為 true,從而觸發(fā)彈出層顯示。
{{area ? area : “請(qǐng)選擇”}}:顯示當(dāng)前選擇的地區(qū)信息,如果沒(méi)有選擇則顯示“請(qǐng)選擇”。
< van-popup v-model=“isPopup”>:彈出層組件,v-model 綁定的 isPopup 控制彈出層的顯示與隱藏。
< van-area>:省市區(qū)選擇組件。
1. title="選擇地區(qū)1:":設(shè)置標(biāo)題。 2. :area-list="areaList":綁定地區(qū)數(shù)據(jù),areaList 是一個(gè)包含省市區(qū)數(shù)據(jù)的對(duì)象。 3. @cancel="isPopup=false":點(diǎn)擊取消按鈕時(shí),關(guān)閉彈出層。 4. @confirm="vantSelectArea":點(diǎn)擊確認(rèn)按鈕時(shí),觸發(fā) vantSelectArea 方法。
data() {
return {
area: "", // 當(dāng)前選擇的地區(qū)
areaList: AreaList, // 地區(qū)數(shù)據(jù)
isPopup: false // 控制彈出層的顯示與隱藏
};
},
methods: {
vantSelectArea(vals) {
console.log(vals);
if (vals.length > 0) {
this.area = "";
for (let i = 0; i < vals.length; i++) {
this.area += "" + vals[i].name;
}
this.area = this.area.slice(1); // 去掉第一個(gè)字符(多余的空格)
console.log(this.area);
this.isPopup = false; // 關(guān)閉彈出層
}
}
}
vantSelectArea(vals):這是 van-area 組件的 @confirm 事件的回調(diào)函數(shù),當(dāng)用戶點(diǎn)擊確認(rèn)按鈕時(shí)觸發(fā)。
1. vals:用戶選擇的地區(qū)信息數(shù)組。 2. if (vals.length > 0):確保用戶有選擇的地區(qū)信息。 3. this.area = "":初始化 area,清空之前的值。 4. for (let i = 0; i < vals.length; i++):遍歷 vals 數(shù)組,將每個(gè)地區(qū)的名稱(chēng)拼接到 this.area 中。 5. this.area += "" + vals[i].name:將每個(gè)地區(qū)的名稱(chēng)拼接起來(lái)。這里使用了 "" + 來(lái)確保拼接的是字符串。 6. this.area = this.area.slice(1):去掉第一個(gè)字符(多余的空格)。因?yàn)槠唇訒r(shí)會(huì)多出一個(gè)空格,所以需要去掉。 7. console.log(this.area):在控制臺(tái)打印最終選擇的地區(qū)名稱(chēng)。 8. this.isPopup = false:關(guān)閉彈出層。
代碼優(yōu)化
methods: {
vantSelectArea(vals) {
if (vals.length > 0) {
this.area = vals.map(val => val.name).join(" "); // 使用 map 和 join 拼接字符串
console.log(this.area);
this.isPopup = false; // 關(guān)閉彈出層
}
}
}
總結(jié)
到此這篇關(guān)于Vue移動(dòng)端UI庫(kù)之vant安裝使用的文章就介紹到這了,更多相關(guān)Vue移動(dòng)端UI庫(kù)vant內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue使用ECharts實(shí)現(xiàn)折線圖和餅圖
這篇文章主要為大家詳細(xì)介紹了vue使用ECharts實(shí)現(xiàn)折線圖和餅圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
vue-cli腳手架創(chuàng)建項(xiàng)目遇到的坑及解決
這篇文章主要介紹了vue-cli腳手架創(chuàng)建項(xiàng)目遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
vue項(xiàng)目配置sass及引入外部scss文件方式
這篇文章主要介紹了vue項(xiàng)目配置sass及引入外部scss文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
淺談element關(guān)于table拖拽排序問(wèn)題
本文主要介紹了element關(guān)于table拖拽排序問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
VUE v-for循環(huán)中每個(gè)item節(jié)點(diǎn)動(dòng)態(tài)綁定不同函數(shù)的實(shí)例
今天小編就為大家分享一篇VUE v-for循環(huán)中每個(gè)item節(jié)點(diǎn)動(dòng)態(tài)綁定不同函數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue store之狀態(tài)管理模式的詳細(xì)介紹
這篇文章主要介紹了vue store之狀態(tài)管理模式的詳細(xì)介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
vue項(xiàng)目如何讀取本地json文件數(shù)據(jù)實(shí)例
很多時(shí)候我們需要從本地讀取JSON文件里面的內(nèi)容,這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目如何讀取本地json文件數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2023-06-06
vue項(xiàng)目使用$router.go(-1)返回時(shí)刷新原來(lái)的界面操作
這篇文章主要介紹了vue項(xiàng)目使用$router.go(-1)返回時(shí)刷新原來(lái)的界面操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
vue使用drag與drop實(shí)現(xiàn)拖拽的示例代碼
本篇文章主要介紹了vue使用drag與drop實(shí)現(xiàn)拖拽的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09

