Vue移動端UI庫之vant安裝使用教程
Vant是有贊開源的一套基于Vue 2.0的移動端的組件庫。 官方地址:https://develop365.gitlab.io/vant/zh-CN/home/ 1.Toast輕提示 Toast官方文檔:https://vant-contrib.gitee.io/vant/#/zh-CN/toast 2.Switch開關(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ū)三級聯(lián)動選擇,通常與彈出層組件配合使用。 彈出層官方文檔: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 時,可以通過 npm 進行安裝:
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(“請輸入手機號”)
效果演示

Toast.success(“請輸入手機號”)
效果演示

vantToast.fail(“請輸入手機號”)
效果演示


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

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

1. Dialog.alert方法使用


2. Dialog.confirm方法使用


3. Dialog 組件提供了豐富的配置選項,以下是一些常用的配置:
基本配置
1. title:對話框標題,默認值為 ''。 2. message:對話框內(nèi)容,可以是字符串或 HTML。 3. theme:按鈕主題,可選值為 default 或 round-button。 4. showCancelButton:是否顯示取消按鈕,默認值為 false。 5. showConfirmButton:是否顯示確認按鈕,默認值為 true。 6. confirmButtonText:確認按鈕的文本,默認值為 '確認'。 7. cancelButtonText:取消按鈕的文本,默認值為 '取消'。
自定義樣式
1. className:自定義類名,用于添加額外的樣式。 2. overlayClass:遮罩層的自定義類名。 3. overlayStyle:遮罩層的自定義樣式。
回調(diào)函數(shù)
1. beforeClose:在關(guān)閉對話框之前觸發(fā)的回調(diào)函數(shù),可以用于阻止關(guān)閉。 2. onOpened:對話框完全打開時觸發(fā)的回調(diào)函數(shù)。 3. onClosed:對話框完全關(guān)閉時觸發(fā)的回調(diào)函數(shù)。
4. 自定義內(nèi)容
如果需要顯示更復(fù)雜的內(nèi)容(如表單、圖片等),可以使用 Dialog.open 方法,并傳入一個 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') {
// 確認操作
console.log('確認操作');
done(); // 關(guān)閉對話框
} else {
// 取消操作
console.log('取消操作');
done(); // 關(guān)閉對話框
}
},
onOpened() {
console.log('對話框已完全打開');
},
onClosed() {
console.log('對話框已完全關(guān)閉');
}
});
樣式覆蓋:可以通過 className 或 overlayClass 添加自定義樣式,也可以通過全局樣式覆蓋默認樣式。
5.Area省市區(qū)選擇
van-area 組件簡介:
van-area 是一個級聯(lián)選擇器,專門用于選擇省市區(qū)(或省市區(qū)縣)信息。它支持多級聯(lián)動選擇,并且可以通過事件回調(diào)獲取用戶選擇的結(jié)果。
<template>
<div>
<div>
請選擇地區(qū):<span @click="isPopup=true">{{area ? area : "請選擇"}}</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”>:點擊時將 isPopup 設(shè)置為 true,從而觸發(fā)彈出層顯示。
{{area ? area : “請選擇”}}:顯示當前選擇的地區(qū)信息,如果沒有選擇則顯示“請選擇”。
< van-popup v-model=“isPopup”>:彈出層組件,v-model 綁定的 isPopup 控制彈出層的顯示與隱藏。
< van-area>:省市區(qū)選擇組件。
1. title="選擇地區(qū)1:":設(shè)置標題。 2. :area-list="areaList":綁定地區(qū)數(shù)據(jù),areaList 是一個包含省市區(qū)數(shù)據(jù)的對象。 3. @cancel="isPopup=false":點擊取消按鈕時,關(guān)閉彈出層。 4. @confirm="vantSelectArea":點擊確認按鈕時,觸發(fā) vantSelectArea 方法。
data() {
return {
area: "", // 當前選擇的地區(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); // 去掉第一個字符(多余的空格)
console.log(this.area);
this.isPopup = false; // 關(guān)閉彈出層
}
}
}
vantSelectArea(vals):這是 van-area 組件的 @confirm 事件的回調(diào)函數(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ù)組,將每個地區(qū)的名稱拼接到 this.area 中。 5. this.area += "" + vals[i].name:將每個地區(qū)的名稱拼接起來。這里使用了 "" + 來確保拼接的是字符串。 6. this.area = this.area.slice(1):去掉第一個字符(多余的空格)。因為拼接時會多出一個空格,所以需要去掉。 7. console.log(this.area):在控制臺打印最終選擇的地區(qū)名稱。 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移動端UI庫之vant安裝使用的文章就介紹到這了,更多相關(guān)Vue移動端UI庫vant內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解從vue-loader源碼分析CSS Scoped的實現(xiàn)
這篇文章主要介紹了詳解從vue-loader源碼分析CSS Scoped的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
Vue簡單封裝axios網(wǎng)絡(luò)請求的方法
這篇文章主要介紹了Vue簡單封裝axios網(wǎng)絡(luò)請求,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,對Vue封裝axios網(wǎng)絡(luò)請求相關(guān)知識感興趣的朋友一起看看吧2022-11-11
vue3中require報錯require is not defined問題及解決
這篇文章主要介紹了vue3中require報錯require is not defined問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
Vue實現(xiàn)遠程獲取路由與頁面刷新導(dǎo)致404錯誤的解決
這篇文章主要介紹了Vue實現(xiàn)遠程獲取路由與頁面刷新導(dǎo)致404錯誤的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
詳解無限滾動插件vue-infinite-scroll源碼解析
這篇文章主要介紹了詳解無限滾動插件vue-infinite-scroll源碼解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05

