前端Vue自定义简单通用省市区选择器picker地区选择器picker 收获地址界面模版

随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随意的进行组合。大大提升开发效率低,降低维护成本。

组件化对于任何一个业务场景复杂的前端应用以及经过多次迭代之后的产品来说都是必经之路。组件化要做的不仅仅是表面上看到的模块拆分解耦,其背后还有很多工作来支撑组件化的进行,例如结合业务特性的模块拆分策略、模块间的交互方式和构建系统等等 。

本文给大家介绍的一款组件是:前端Vue自定义简单通用省市区选择器picker地区选择器picker 收获地址界面模版,

效果图如下:

format,png

format,png

format,png

代码实现如下:

# cc-selectDity

#### 使用方法

```使用方法

<!-- 省市区选择 show:是否显示  @sureSelectArea:确认事件 @hideShow:隐藏事件-->

<cc-selectDity :show="show" @sureSelectArea="onsetCity" @hideShow="onhideShow"></cc-selectDity>

main.js文件设置全局函数

Vue.mixin({

methods: {

setData: function(obj, callback) {

let that = this;

const handleData = (tepData, tepKey, afterKey) => {

tepKey = tepKey.split('.');

tepKey.forEach(item => {

if (tepData[item] === null || tepData[item] === undefined) {

let reg = /^[0-9]+$/;

tepData[item] = reg.test(afterKey) ? [] : {};

tepData = tepData[item];

} else {

tepData = tepData[item];

}

});

return tepData;

};

const isFn = function(value) {

return typeof value == 'function' || false;

};

Object.keys(obj).forEach(function(key) {

let val = obj[key];

key = key.replace(/\]/g, '').replace(/\[/g, '.');

let front, after;

let index_after = key.lastIndexOf('.');

if (index_after != -1) {

### Vue 小程序省市区地址选择器组件实现 对于Vue小程序中的省市区地址选择器组件,可以采用`picker`组件来构建。通过设置`picker`的属性和事件处理函数,能够实现在用户界面中展示并交互式选择省、市、区的信息。 #### 使用Picker Component实现省市区选择 在页面模板部分定义了一个包含三个级别(省、市、区)的选择框: ```html <view class="row b-b"> <text class="tit">区域</text> <picker mode="region" @change="bindRegionChange" :value="region"> <view class="input-tab">{{ region.join(' ') || '请选择区域' }}</view> </picker> </view> ``` 此段代码创建了一个用于显示当前选定地区的视图,并绑定了一个点击触发的选择变化监听器[^3]。 #### 数据绑定与初始化 为了使上述UI元素正常工作,在对应的JavaScript逻辑文件里需声明初始状态以及响应选择变动的方法: ```javascript Page({ data: { region: [] // 初始为空数组表示未做任何选择 }, bindRegionChange(e){ const value = e.detail.value; this.setData({ region: value.length === 3 ? value : ['请选择','省市','区县'] }); console.log('选择了:', ...this.data.region); } }) ``` 这里设置了默认值为一个空数组,意味着当首次进入该页面时会提示用户进行选择;而每当发生新的选择动作后,则更新内部的状态变量`region`以反映最新的选择情况。 #### 扩展至四级联动 如果项目需求涉及到更细粒度的位置划分比如增加到街道甚至村庄级别的选择,那么就需要自定义一个多级联选择控件而不是依赖内置的`mode=region`模式。这通常涉及到了解如何获取各级别的地理编码数据,并根据上一级别所作的选择异步加载下一级的数据列表[^1]。 例如可以通过API请求的方式从服务器端按需取得子项列表,从而支持无限层级的城市位置地址选择功能。此时可能还需要考虑性能优化措施如缓存机制防止频繁网络访问影响用户体验等问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端组件开发

你的钟意将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值