Maison >interface Web >uni-app >Utilisez uniapp pour obtenir des effets de sélecteur de liaison à plusieurs niveaux

Utilisez uniapp pour obtenir des effets de sélecteur de liaison à plusieurs niveaux

PHPz
PHPzoriginal
2023-11-21 10:25:591869parcourir

Utilisez uniapp pour obtenir des effets de sélecteur de liaison à plusieurs niveaux

Utilisez Uniapp pour obtenir un effet de sélecteur de liaison à plusieurs niveaux

1. Introduction
Le sélecteur de liaison à plusieurs niveaux est un effet interactif courant qui peut être observé dans de nombreux scénarios d'application. Dans Uniapp, nous pouvons facilement obtenir cet effet en utilisant les composants et les API qu'il fournit. Cet article explique comment utiliser Uniapp pour implémenter des sélecteurs de liaison à plusieurs niveaux et fournit des exemples de code spécifiques.

2. Préparation
Avant de commencer la mise en œuvre, nous devons préparer le travail suivant :

  1. Installer l'environnement de développement Uniapp, y compris Node.js, HBuilderX, etc. ;
  2. Créer le projet Uniapp et choisir le modèle approprié ;
  3. Comprendre les connaissances en développement d'Uniapp Basic, y compris les composants, le routage des pages, etc.

3. Étapes de mise en œuvre

  1. Créer la source de données du sélecteur
    Le cœur du sélecteur de liaison multi-niveaux est la source de données. Nous devons d'abord créer un ensemble de données qui répond aux exigences. En prenant le sélecteur de liaison à trois niveaux comme exemple, nous définissons un tableau. Chaque élément du tableau est un objet. L'objet comprend un texte d'affichage et un tableau enfant. Le tableau enfant est également composé d'objets, etc.

Par exemple, nous créons une source de données de province et de ville :

const data = [
  {
    name: '北京市',
    children: [
      {
        name: '东城区',
        children: [
          { name: '东华门街道' },
          { name: '东四街道' }
        ]
      },
      {
        name: '西城区',
        children: [
          { name: '西单街道' },
          { name: '西直门街道' }
        ]
      }
    ]
  },
  {
    name: '上海市',
    children: [
      {
        name: '黄浦区',
        children: [
          { name: '外滩街道' },
          { name: '南京东路街道' }
        ]
      },
      {
        name: '徐汇区',
        children: [
          { name: '徐家汇街道' },
          { name: '田林街道' }
        ]
      }
    ]
  }
];
  1. Implémentez la structure et le style de la page
    Dans Uniapp, nous pouvons utiliser les composants qu'elle fournit pour construire la page. Tout d'abord, créez une page nommée index dans le répertoire pages, et écrivez la structure et le style de la page dans le fichier index.vue. pages目录下创建一个名为index的页面,在index.vue文件中编写页面结构和样式。
<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>
  1. 实现选择器的事件处理
    在Uniapp中,我们可以使用picker组件的bindchange事件来监听选择器的变化,并执行相应的逻辑。

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>

    Implémenter le traitement des événements du sélecteur
    Dans Uniapp, nous pouvons utiliser l'événement bindchange du composant picker pour écouter le le sélecteur change et exécute la logique correspondante.


    Ajoutez le code suivant dans le fichier index.vue :

    rrreee🎜4. Exécution et débogage🎜Dans HBuilderX, sélectionnez l'environnement d'exécution approprié pour prévisualiser et déboguer sur le simulateur ou la machine réelle. Si tout se passe bien, vous pouvez voir l'effet du sélecteur de liaison multi-niveaux. 🎜🎜5. Résumé🎜Cet article présente la méthode d'utilisation d'Uniapp pour implémenter des sélecteurs de liens à plusieurs niveaux, y compris la création de sources de données, la mise en œuvre de la structure et du style de page et le traitement des événements de sélecteur. Grâce à ces étapes, nous pouvons facilement obtenir l'effet des sélecteurs de liaison à plusieurs niveaux dans Uniapp. J'espère que cet article sera utile au développement d'Uniapp ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn