유니앱에서 시/도 선택 기능 구현하는 방법

王林
풀어 주다: 2023-07-04 09:09:09
원래의
5857명이 탐색했습니다.

uni-app은 Vue.js를 기반으로 한 크로스 플랫폼 개발 프레임워크입니다. 개발 중에 지방과 도시를 선택하는 기능을 구현해야 하는 경우가 많습니다. 이 기사에서는 uni-app의 일부 구성 요소와 플러그인을 사용하여 지방 및 도시 선택 기능을 구현하는 방법을 소개합니다.

먼저, 지방 및 시에 대한 데이터 소스를 준비해야 합니다. 일반적으로 사용되는 데이터 소스는 JSON 파일이거나 백엔드 API에서 얻을 수 있습니다. 여기서는 JSON 파일 형식으로 이를 보여줍니다.

  1. JSON 파일 생성
    시/도 데이터를 저장하기 위한 data.json 파일을 생성합니다. 내용은 다음과 같습니다.
{
  "provinceList": [
    {
      "name": "北京市",
      "cityList": [
        {
          "name": "北京市",
          "districtList": ["东城区", "西城区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区", "密云区", "延庆区"]
        }
      ]
    },
    {
      "name": "上海市",
      "cityList": [
        {
          "name": "上海市",
          "districtList": ["黄浦区", "徐汇区", "长宁区", "静安区", "普陀区", "虹口区", "杨浦区", "闵行区", "宝山区", "嘉定区", "浦东新区", "金山区", "松江区", "青浦区", "奉贤区", "崇明区"]
        }
      ]
    },
    {
      "name": "广东省",
      "cityList": [
        {
          "name": "广州市",
          "districtList": ["荔湾区", "越秀区", "海珠区", "天河区", "白云区", "黄埔区", "番禺区", "花都区", "南沙区", "增城区", "从化区"]
        },
        {
          "name": "深圳市",
          "districtList": ["罗湖区", "福田区", "南山区", "宝安区", "龙岗区", "盐田区", "龙华区", "坪山区", "光明区", "大鹏新区"]
        }
      ]
    }
  ]
}
로그인 후 복사
  1. 페이지 구조
    페이지에 지방 및 도시 선택 양식을 생성하고 코드는 다음과 같습니다.
<template>
  <view>
    <form>
      <picker mode="selector" range="{{ province }}" bind:change="onProvinceChange">
        <view class="picker">
          {{ province[index1] }}
          <text class="iconfont icon-down"></text>
        </view>
      </picker>
      <picker mode="selector" range="{{ city }}" bind:change="onCityChange">
        <view class="picker">
          {{ city[index2] }}
          <text class="iconfont icon-down"></text>
        </view>
      </picker>
      <picker mode="selector" range="{{ district }}" bind:change="onDistrictChange">
        <view class="picker">
          {{ district[index3] }}
          <text class="iconfont icon-down"></text>
        </view>
      </picker>
    </form>
  </view>
</template>
로그인 후 복사
  1. 페이지 로직
    에서 지방 및 도시 데이터 읽기를 구현합니다. 해당 페이지의 JS 파일과 선택 로직, 코드는 다음과 같습니다.
<script>
  export default {
    data() {
      return {
        province: [],
        city: [],
        district: [],
        index1: 0,
        index2: 0,
        index3: 0
      }
    },
    methods: {
      onProvinceChange(e) {
        const index = e.detail.value;
        this.setData({
          province: this.data.provinceList.map(item => item.name),
          city: this.data.provinceList[index].cityList.map(item => item.name),
          district: this.data.provinceList[index].cityList[0].districtList,
          index1: index,
          index2: 0,
          index3: 0
        });
      },
      onCityChange(e) {
        const index = e.detail.value;
        this.setData({
          district: this.data.provinceList[this.data.index1].cityList[index].districtList,
          index2: index,
          index3: 0
        });
      },
      onDistrictChange(e) {
        const index = e.detail.value;
        this.setData({
          index3: index
        });
      }
    },
    created() {
      wx.request({
        url: '/data.json',
        success: res => {
          const { provinceList } = res.data;
          this.setData({
            province: provinceList.map(item => item.name),
            city: provinceList[0].cityList.map(item => item.name),
            district: provinceList[0].cityList[0].districtList
          });
        }
      });
    }
  }
</script>
로그인 후 복사

위는 유니앱을 통해 지방 및 도시 선택 기능을 구현하는 방법에 대한 샘플 코드입니다. uni-app의 선택기 구성요소를 사용하면 선택한 주를 기반으로 도시 및 구역 옵션을 동적으로 업데이트할 수 있습니다. wx.request를 사용하여 페이지의 JS 파일에서 데이터 소스를 요청한 다음 선택한 주를 기반으로 도시 및 구역 옵션을 동적으로 업데이트합니다.

이 예시가 uni-app에서 지방 및 도시 선택 기능을 구현하는 데 도움이 되기를 바랍니다. 물론 실제 개발에서는 필요에 따라 변경하고 최적화해야 할 수도 있습니다. 이 기사가 몇 가지 아이디어와 도움을 제공할 수 있기를 바랍니다.

위 내용은 유니앱에서 시/도 선택 기능 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿