vant area地区选择组件使用方法
目录
- 一、介绍
- 二、引入
- 1、安装vant
- 2、引入
- 三、使用
一、介绍
Vant 是有赞前端团队开源的移动端组件库,于 2017 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万开发者,是业界主流的移动端组件库之一。目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本。
地区层级选择组件属于比较复杂的业务组件,使用vant地区选择组件同时,可以对组件样式进行修改,以满足个人业务要求。
二、引入
1、安装vant
使用npm i vant即可安装vant最新版本:
npm i vant
安装完毕之后可以选择按需引入组件或者全局引入vant组件,这里我们选择按需引入。
2、引入
- 引入插件
babel-plugin-import 是一款 babel 插件,它会在编译过程中将 import 的写法自动转换为按需引入的方式。引入方法如下:
npm i babel-plugin-import -D
- 添加babel的配置
使用babel配置不会出现组件样式无法加载问题,否则则需要按需引入组件样式文件。
// 在.babelrc 中添加配置
// 注意:webpack 1 无需设置 libraryDirectory
{"plugins": [["import", {"libraryName": "vant","libraryDirectory": "es","style": true}]]
}// 对于使用 babel7 的用户,可以在 babel.config.js 中配置
module.exports = {plugins: [['import', {libraryName: 'vant',libraryDirectory: 'es',style: true}, 'vant']]
};
- 导入组件
通常使用地区选择组件,需要搭配底部弹出组件Popup一起使用,引入两个vant组件:
import AreaList from '@/assets/js/area.js'
import Vue from 'vue';
import { Area, Popup } from 'vant';
Vue.use(Area);
Vue.use(Popup);
其中,引入的AreaList包含了所有的地区的地区代码,文件地址为:https://download.csdn.net/download/m0_46309087/14001917。
三、使用
引入Area, Popup两个组件以后,通过阅读两个组件API文档使用这两个组件,以下是两个组件api文档,这里api接口较多,我们仅选择我们需要的几个api做说明:
- popup
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
v-model (value) | 是否显示弹出层 | boolean | false |
position | 弹出位置,可选值为 top bottom right left | string | center |
- Area
事件 | 说明 | 回调参数 |
---|---|---|
confirm | 点击右上方完成按钮 | 一个数组参数 |
cancel | 点击取消按钮时 | - |
对于area组件,以上两个事件对应的是确认和取消两个按钮的事件,其他的api详见VantDOC;
地区组件最关键的就是入参与出参,入参数据格式为:
{province_list: {110000: '北京市',120000: '天津市'},city_list: {110100: '北京市',110200: '县',120100: '天津市',120200: '县'},county_list: {110101: '东城区',110102: '西城区',110105: '朝阳区',110106: '丰台区'120101: '和平区',120102: '河东区',120103: '河西区',120104: '南开区',120105: '河北区',// ....}
}
完整的数据见https://download.csdn.net/download/m0_46309087/14001917。
选择完毕点击确定按钮,confirm事件获取参数,出参数据格式为:
//返回的数据整体为一个数组,数组内包含 columnsNum 个数据, 每个数据对应一列选项中被选中的数据。//code 代表被选中的地区编码, name 代表被选中的地区名称[{code: '110000',name: '北京市',},{code: '110100',name: '北京市',},{code: '110101',name: '东城区',},
];
实现的效果如下图:
完整代码如下:
<template><div><div class="flex-input"><div class="tx-lable">{{ itemName }}</div><div class="tx-input" @click="areaChoose"><inputtype="text":placeholder="phdText"v-model="chooseValue"readonly/><img src="@/assets/images/toRight.png" /></div></div><DLine v-show="showUnderline"></DLine><van-popup v-model="showAddrPopup" position="bottom"><van-areatitle="选择地区":area-list="areaList"@cancel="showAddrPopup = false"@confirm="confArea"@visible-item-count="itemCount"/></van-popup></div>
</template>
<script>
import DLine from "@/components/DLine";
import AreaList from "@/assets/js/area.js";
import Vue from "vue";
import { Area, Popup } from "vant";
Vue.use(Area);
Vue.use(Popup);
export default {props: {itemName: {type: String, //按钮名称default: "地区"},phdText: {type: String, //按钮名称default: "请选择地区"},showUnderline: {type: Boolean,default: true}},components: {DLine},data() {return {areaList: {}, //省市区列表itemCount: 7,showAddrPopup: false, //弹出层展示chooseValue: ""};},created() {this.initParams();},methods: {clickhandle() {//使用emit,第一个参数为子组件组件方法,第二个参数为该方法传递的参数this.$emit("clickhandle", 5);},initParams() {this.areaList = AreaList;},areaChoose() {this.showAddrPopup = true;},confArea(data) {// this.chooseArea = data;for(let i = 0; i<data.length; i++) {this.chooseValue = data[i].name + this.chooseValue;}}}
};
</script>
<style lang="scss" scoped>
.flex-input {display: flex;justify-content: space-between;background-color: #ffffff;height: 56px;padding: 0 25px;div {font-size: 16px;color: #2e042c;letter-spacing: 0;}
}
.tx-lable {margin: 16px 0;height: 24px;line-height: 24px;vertical-align: -webkit-baseline-middle;
}
.tx-input {display: flex;justify-content: flex-end;margin: 16px 0;line-height: 24px;input {border: none;margin-right: 5px;text-align: right;}input::-moz-placeholder {color: #f6e9f7;}img {margin: 7px 5px;height: 12px;width: 12px;}
}
</style>
vant area地区选择组件使用方法相关推荐
- html5地区级联选择,【JS】vue+vant移动端地区级联选择组件
首页 专栏 javascript 文章详情 0 vue+vant移动端地区级联选择组件 quanta发布于 今天 08:25 写在开头:项目的框架是vue+vant,业务需求一个级联的地区选择,写完才 ...
- vant 索引城市不对_Vant Area 省市区选择
介绍 省市区三级联动选择,通常与 弹出层 组件配合使用 引入import Vue from 'vue'; import { Area } from 'vant'; Vue.use(Area); 代码演 ...
- vant 引进单个样式_vue 公共列表选择组件,引用Vant-UI的样式方式
此组件用于公共选择组件.引用Vant UI 作为样式 特性: 1.支持动态.静态数据源. 2.支持分页加载. 3.支持模糊搜索. 4.支持单选.多选. 组件源码: 确认 v-model="l ...
- WPF地区选择控件(内附下载地址)
最近使用WPF做了一个地区选择控件,可以提供省.市.地区.县等名称的快速录入.查询使用的是Lucene组件(主要是想体验一下牛刀杀鸡) 功能列表: 支持汉字.全拼.简拼的快速搜索 支持光标键和鼠标滚轮 ...
- Vant - 高效的 Vue 组件库,再造一个有赞移动商城也不在话下
Vant ( \ˈvænt\ ) 是有赞前端团队基于有赞统一的规范实现的 Vue 组件库,提供了一整套 UI 基础组件和业务组件.通过 Vant,可以快速搭建出风格统一的页面,提升开发效率.目前已有近 ...
- 微信小程序地址选择组件(仿拼多多App版地址选择)
先上效果图 这是一个地址选择组件 点击选择地址 启动组件选择完成 返回组件中选择的地址 首先先写组件代码 getAddress.js var city = require('../../ ...
- vant d的地址组件中文操作手册
vant d的 学习手册.中文操作文档 开发指南 快速上手 基础组件 Empty 空状态 业务组件 地址列表 地址编辑 Area 省市区选择 Card 卡片 Contact 联系人 Coupon 优惠 ...
- vue移动端地区选择练习
写的比较小白,效果简单.仅供和我一样学习中的同学一起探讨.以后会继续加油.目前没有封装组件.等我写的足够好了我再封装. 先附上html代码 <!DOCTYPE html> <html ...
- vue移动端地区选择练习1
写的比较小白,效果简单.仅供和我一样学习中的同学一起探讨.以后会继续加油.目前没有封装组件.等我写的足够好了我再封装. 先附上html代码 <!DOCTYPE html> <html ...
- vant框架上传组件---上传身份证两面图片需求并且压缩图片质量,非压缩长宽——商城项目
场景 1.vant框架上传组件-上传身份证两面图片需求并且压缩图片质量,非压缩长宽--商城项目 2.压缩图片质量大小-- 3.压缩逻辑因为是正反两面单独压缩执行,所以我这里使用 Promise.all ...
最新文章
- R语言使用ggplot2包使用geom_density()函数绘制密度图(连续色彩、离散色彩、梯度色彩)实战(density plot)
- 手把手带你画一个漂亮蜂窝view Android自定义view
- pytorch 构建神经网络模型总结
- QDir类cleanPath函数用法
- 实例29:python
- Leetcode--78. 子集
- 2019C语言程序设计大赛,2019年全国高校计算机能力挑战赛 C语言程序设计决赛
- python数据挖掘学习笔记】十四.Scipy调用curve_fit实现曲线拟合
- 所以進入到二十一世紀之後
- 2021 前端面试经常被问到 Javascript+HTML5+CSS+ 框架问题(89 篇资料总结)
- 统计一个子字符串在另一个字符串中出现的次数
- linux php adodb,【原创】Linux下php使用adodb对sql Server访问配置
- 单片机炫彩灯实训报告_单片机实验报告——流水灯
- 无蓝光护眼台灯哪个牌子好?盘点几款无蓝光无频闪的护眼台灯
- Linux中合并多个Pdf文件(使用pdfunite,合并比较简单)
- 计算机换系统后word丢失怎么办,Word文件丢失如何找回?教你解决文件丢失的难题...
- STM32 GD32 CAN调试调试调试
- 9款免费的Windows远程协助软件
- IOS 应用内支付(IAP)接口使用说明
- 使用Vagrant快速创建linux虚拟机
热门文章
- 央视国际节目定价发布接口规范C2
- MTK6577 编译报错
- 阿里云OSS上传图片、PDF设置链接预览
- 从google code上clone代码出现 couldn't resolve proxy '(null)' while accessing 的解决方法(2012/12/06)
- 关于SQLite创建视图
- DeskSpace-适用于Vista的类似Beryl的3D多维数据集虚拟桌面管理器
- JTAG/JLINK
- 如何升级 Win10 系统
- 如何修改Windows(可移植)桌面文件夹图标
- 湖中剑 GitHub周刊 #10 | 开源监控uptime-kuma、LVGL嵌入式UI、node版本管理nvm