【uniapp+vue3+u-picker】获取中国省市区数据结构,省市区数据三级联动json文件完整版,已实现三级联动效果+省市区街道数据四级联动json文件完整版,已实现四级联动效果

本文介绍了如何在uniapp+vue3环境下,利用u-picker组件结合json数据实现省市区街道四级联动。详细讲解了数据结构处理、json文件引入、组件绑定数据以及动态响应滚动事件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

这个功能的实现,中间耽误了几天,在大佬的帮助下终于实现效果,匿名感谢xx大佬

要实现的效果如下:
在这里插入图片描述
1、首先需要获取省市区的数据,不考虑后端返数据,自己使用json文件的话,需要获取到完整的中国省市区数据
有个很不错的github源码可供参考,Administrative-divisions-of-China中国行政区划数据,请戳这里进行跳转

我选择的是省市区三级联动数据
在这里插入图片描述
在这里插入图片描述

github有时很难加载出来,最下面附了完整的数据结构
2、 拿到josn数据后,在uniapp的static文件夹中新建provinceData文件夹,新建provinceData.json文件

没截全,数据太多了
在这里插入图片描述
3、然后引入到要使用的页面中

import provinceData from '@/static/provinceData/provinceData.json';

打印出来的效果:
在这里插入图片描述
4、然后开始给uviewplus的u-select组件绑数据,vue3是u-picke,
这里遇到个问题,只能说第一次开发,好多点都不懂,u-select只有2x版本才有,我的项目是vue3,需要3x版本,而3x版本里不叫u-select,是u-picker选择器

当我发现u-select使用后效果始终无法出来的时候,我在uni_modules/uview-plus/components文件夹下找是否有u-select,没找到之后我去hbuilderx插件市场搜uview-plus

在这里插入图片描述
点进去之后里面有官网文档的链接
在这里插入图片描述
打开之后才发现,我之前看的都是2x的版本,说多了都是泪
在这里插入图片描述
5、代码解析:

1、3x版是通过show属性控制显示与隐藏
2、columns中接收的是二维数组,需要展示几列,就有几个对应的二维数组
3、如何触发u-picker打开,这里没写,就是在你的点击事件里将data.uselectshow设置为true就行

<u-picker :show="data.uselectshow" ref="uPicker" :columns="provincelist" @confirm="uPickerconfirm" @change="uPickerchangeHandler" @cancel="uCancel"></u-picker>
	import {
    reactive, ref } from "vue";
	import {
    onReady, onLoad } from "@dcloudio/uni-app";
	import provinceData from '@/static/provinceData/provinceData.json';
	
	let provincelist = reactive([])
    let data = reactive({
   	
		uselectshow: false,//是否显示所在地	
		userInfo: {
   
			city: "",//所在地			
		},
	});
	onReady(() => {
   
		// 处理省市区数据结构
		dealPrinvceData(provinceData)
	})
	// 处理省市区数据结构,每一步都打印了,具体截图如下:
	function dealPrinvceData(data) {
   
		// 所在地初始化地区,默认第一个城市
				console.log(data,'data---1'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值