Vue移动端UI库之vant安装使用教程
作者:时间sk
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开关 Switch官方文档:https://vant-contrib.gitee.io/vant/#/zh-CN/switch 3.Dialog弹出框 Dialog官方文档:https://vant-contrib.gitee.io/vant/#/zh-CN/dialog 4.Area省市区选择 Area官方文档:https://vant-contrib.gitee.io/vant/#/zh-CN/area 省市区三级联动选择,通常与弹出层组件配合使用。 弹出层官方文档:https://vant-contrib.gitee.io/vant/#/zh-CN/popup 首先需要下载省市区的数据源,下载地址: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开关
<!-- 开关 --> <van-switch v-model="isOpin" size="60px" active-color="red" inactive-color="blue" > 开关 </van-switch> 定义开关的相关状态
3.Dialog弹出框
1. Vant UI 的 Dialog 组件简介
Dialog 是一个弹出框组件,用于在页面上显示提示信息、确认操作等。它支持多种类型(如普通对话框、确认框、自定义内容等),并且可以通过 Promise 的方式处理用户操作(如点击确认或取消按钮)。
2. 基本用法
引入 Dialog 组件
在 Vue 项目中,可以通过以下方式引入 Dialog 组件:
import { Dialog } from 'vant'; Vue.use(Dialog);
1. Dialog.alert方法使用
2. Dialog.confirm方法使用
3. Dialog 组件提供了丰富的配置选项,以下是一些常用的配置:
基本配置
1. title:对话框标题,默认值为 ''。 2. message:对话框内容,可以是字符串或 HTML。 3. theme:按钮主题,可选值为 default 或 round-button。 4. showCancelButton:是否显示取消按钮,默认值为 false。 5. showConfirmButton:是否显示确认按钮,默认值为 true。 6. confirmButtonText:确认按钮的文本,默认值为 '确认'。 7. cancelButtonText:取消按钮的文本,默认值为 '取消'。
自定义样式
1. className:自定义类名,用于添加额外的样式。 2. overlayClass:遮罩层的自定义类名。 3. overlayStyle:遮罩层的自定义样式。
回调函数
1. beforeClose:在关闭对话框之前触发的回调函数,可以用于阻止关闭。 2. onOpened:对话框完全打开时触发的回调函数。 3. onClosed:对话框完全关闭时触发的回调函数。
4. 自定义内容
如果需要显示更复杂的内容(如表单、图片等),可以使用 Dialog.open 方法,并传入一个 Vue 组件作为内容。
Dialog.open({ title: '自定义内容', message: '<div>这里是自定义的 HTML 内容</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(); // 关闭对话框 } else { // 取消操作 console.log('取消操作'); done(); // 关闭对话框 } }, onOpened() { console.log('对话框已完全打开'); }, onClosed() { console.log('对话框已完全关闭'); } });
样式覆盖:可以通过 className 或 overlayClass 添加自定义样式,也可以通过全局样式覆盖默认样式。
5.Area省市区选择
van-area 组件简介:
van-area 是一个级联选择器,专门用于选择省市区(或省市区县)信息。它支持多级联动选择,并且可以通过事件回调获取用户选择的结果。
<template> <div> <div> 请选择地区:<span @click="isPopup=true">{{area ? area : "请选择"}}</span> </div> <van-popup v-model="isPopup"> <van-area title="选择地区1:" :area-list="areaList" @cancel="isPopup=false" @confirm="vantSelectArea" /> </van-popup> </div> </template>
<span @click=“isPopup=true”>
:点击时将 isPopup 设置为 true,从而触发弹出层显示。
{{area ? area : “请选择”}}
:显示当前选择的地区信息,如果没有选择则显示“请选择”。
< van-popup v-model=“isPopup”>
:弹出层组件,v-model 绑定的 isPopup 控制弹出层的显示与隐藏。
< van-area>
:省市区选择组件。
1. title="选择地区1:":设置标题。 2. :area-list="areaList":绑定地区数据,areaList 是一个包含省市区数据的对象。 3. @cancel="isPopup=false":点击取消按钮时,关闭弹出层。 4. @confirm="vantSelectArea":点击确认按钮时,触发 vantSelectArea 方法。
data() { return { area: "", // 当前选择的地区 areaList: AreaList, // 地区数据 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; // 关闭弹出层 } } }
vantSelectArea(vals):这是 van-area 组件的 @confirm 事件的回调函数,当用户点击确认按钮时触发。
1. vals:用户选择的地区信息数组。 2. if (vals.length > 0):确保用户有选择的地区信息。 3. this.area = "":初始化 area,清空之前的值。 4. for (let i = 0; i < vals.length; i++):遍历 vals 数组,将每个地区的名称拼接到 this.area 中。 5. this.area += "" + vals[i].name:将每个地区的名称拼接起来。这里使用了 "" + 来确保拼接的是字符串。 6. this.area = this.area.slice(1):去掉第一个字符(多余的空格)。因为拼接时会多出一个空格,所以需要去掉。 7. console.log(this.area):在控制台打印最终选择的地区名称。 8. this.isPopup = false:关闭弹出层。
代码优化
methods: { vantSelectArea(vals) { if (vals.length > 0) { this.area = vals.map(val => val.name).join(" "); // 使用 map 和 join 拼接字符串 console.log(this.area); this.isPopup = false; // 关闭弹出层 } } }
总结
到此这篇关于Vue移动端UI库之vant安装使用的文章就介绍到这了,更多相关Vue移动端UI库vant内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!