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)容
如果需要顯示更復雜的內(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-09Vue簡單封裝axios網(wǎng)絡(luò)請求的方法
這篇文章主要介紹了Vue簡單封裝axios網(wǎng)絡(luò)請求,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,對Vue封裝axios網(wǎng)絡(luò)請求相關(guān)知識感興趣的朋友一起看看吧2022-11-11vue3中require報錯require is not defined問題及解決
這篇文章主要介紹了vue3中require報錯require is not defined問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Vue實現(xiàn)遠程獲取路由與頁面刷新導致404錯誤的解決
這篇文章主要介紹了Vue實現(xiàn)遠程獲取路由與頁面刷新導致404錯誤的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01詳解無限滾動插件vue-infinite-scroll源碼解析
這篇文章主要介紹了詳解無限滾動插件vue-infinite-scroll源碼解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05