Rumah >hujung hadapan web >uni-app >Gunakan uniapp untuk mencapai kesan pemilih pautan berbilang peringkat

Gunakan uniapp untuk mencapai kesan pemilih pautan berbilang peringkat

PHPz
PHPzasal
2023-11-21 10:25:591867semak imbas

Gunakan uniapp untuk mencapai kesan pemilih pautan berbilang peringkat

Gunakan Uniapp untuk mencapai kesan pemilih pautan berbilang peringkat

1 kesan boleh dilihat dalam banyak senario aplikasi. Dalam Uniapp, kita boleh mencapai kesan ini dengan mudah dengan menggunakan komponen dan API yang disediakannya. Artikel ini akan memperkenalkan cara menggunakan Uniapp untuk melaksanakan pemilih pautan berbilang peringkat dan memberikan contoh kod khusus.

2. Persediaan

Sebelum memulakan pelaksanaan, kita perlu menyediakan kerja berikut:

    Pasang persekitaran pembangunan Uniapp, termasuk Node.js , HBuilderX dsb.;
  1. Buat projek Uniapp dan pilih templat yang sesuai;
  2. 3 Langkah pelaksanaan

Buat sumber data pemilih

Inti pemilih pautan berbilang peringkat ialah sumber data. Kami Mula-mula anda perlu mencipta satu set data yang memenuhi keperluan. Mengambil pemilih pautan tiga peringkat sebagai contoh, kami mentakrifkan tatasusunan Setiap elemen tatasusunan ialah objek. Tatasusunan anak juga terdiri daripada objek, dan sebagainya.

  1. Sebagai contoh, kami mencipta sumber data wilayah dan bandar:
  2. const data = [
      {
        name: '北京市',
        children: [
          {
            name: '东城区',
            children: [
              { name: '东华门街道' },
              { name: '东四街道' }
            ]
          },
          {
            name: '西城区',
            children: [
              { name: '西单街道' },
              { name: '西直门街道' }
            ]
          }
        ]
      },
      {
        name: '上海市',
        children: [
          {
            name: '黄浦区',
            children: [
              { name: '外滩街道' },
              { name: '南京东路街道' }
            ]
          },
          {
            name: '徐汇区',
            children: [
              { name: '徐家汇街道' },
              { name: '田林街道' }
            ]
          }
        ]
      }
    ];

Melaksanakan struktur dan gaya halaman

Dalam Uniapp, kami Anda boleh menggunakan komponen yang disediakan untuk membina halaman. Mula-mula, buat halaman bernama index dalam direktori pages dan tulis struktur dan gaya halaman dalam fail index.vue.
  1. <template>
      <view class="container">
        <!-- 一级选择器 -->
        <picker mode="selector" :range="{{provinceList}}" bindchange="handleProvinceChange" :value="provinceIndex">
          <view class="picker-block">
            <text>请选择省份</text>
            <text>{{provinceName}}</text> <!-- 显示选择的省份 -->
          </view>
        </picker>
    
        <!-- 二级选择器 -->
        <picker mode="selector" :range="{{cityList}}" bindchange="handleCityChange" :value="cityIndex">
          <view class="picker-block">
            <text>请选择城市</text>
            <text>{{cityName}}</text> <!-- 显示选择的城市 -->
          </view>
        </picker>
    
        <!-- 三级选择器 -->
        <picker mode="selector" :range="{{districtList}}" bindchange="handleDistrictChange" :value="districtIndex">
          <view class="picker-block">
            <text>请选择区县</text>
            <text>{{districtName}}</text> <!-- 显示选择的区县 -->
          </view>
        </picker>
      </view>
    </template>
    
    <style>
    .container {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    
    .picker-block {
      margin-bottom: 20px;
    }
    </style>

      Laksanakan pemprosesan acara bagi pemilih pages目录下创建一个名为index的页面,在index.vue文件中编写页面结构和样式。
<script>
export default {
  data() {
    return {
      provinceList: [],
      provinceIndex: 0,
      provinceName: "",
      cityList: [],
      cityIndex: 0,
      cityName: "",
      districtList: [],
      districtIndex: 0,
      districtName: ""
    };
  },
  mounted() {
    this.initData();
  },
  methods: {
    initData() {
      // 初始化省份列表
      this.provinceList = data.map(item => item.name);

      // 初始化城市列表
      this.handleProvinceChange({ detail: { value: this.provinceIndex } });
    },
    handleProvinceChange(e) {
      const index = e.detail.value;
      this.provinceIndex = index;
      this.provinceName = this.provinceList[index];

      // 根据选择的省份,初始化城市列表
      const cityData = data[index].children;
      this.cityList = cityData.map(city => city.name);

      // 初始化区县列表
      this.handleCityChange({ detail: { value: this.cityIndex } });
    },
    handleCityChange(e) {
      const index = e.detail.value;
      this.cityIndex = index;
      this.cityName = this.cityList[index];

      // 根据选择的城市,初始化区县列表
      const districtData = data[this.provinceIndex].children[index].children;
      this.districtList = districtData.map(district => district.name);
      
      // 初始化选中的区县
      this.handleDistrictChange({ detail: { value: this.districtIndex } });
    },
    handleDistrictChange(e) {
      const index = e.detail.value;
      this.districtIndex = index;
      this.districtName = this.districtList[index];
    }
  }
};
</script>
  1. 实现选择器的事件处理
    在Uniapp中,我们可以使用picker组件的bindchange事件来监听选择器的变化,并执行相应的逻辑。

index.vueDalam Uniapp, kami boleh menggunakan komponen picker bagi >bindchange acara untuk mendengar perubahan dalam pemilih dan melaksanakan logik yang sepadan.


Tambahkan kod berikut dalam fail index.vue:

rrreee

4. Jalankan dan nyahpepijat
dalam HBuilderX , pilih persekitaran berjalan yang sesuai, dan pratonton dan nyahpepijat pada simulator atau mesin sebenar. Jika semuanya berjalan lancar, anda boleh melihat kesan pemilih pautan berbilang peringkat.

#🎜🎜# 5. Ringkasan #🎜🎜# Artikel ini memperkenalkan kaedah menggunakan Uniapp untuk melaksanakan pemilih pautan berbilang peringkat, termasuk mencipta sumber data, melaksanakan struktur dan gaya halaman serta memproses acara pemilih. Melalui langkah ini, kami boleh mencapai kesan pemilih pautan berbilang peringkat dengan mudah dalam Uniapp. Saya harap artikel ini akan membantu pembangunan Uniapp! #🎜🎜#

Atas ialah kandungan terperinci Gunakan uniapp untuk mencapai kesan pemilih pautan berbilang peringkat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn