uniapp を使用してマルチレベルのリンケージセレクター効果を実現する

PHPz
リリース: 2023-11-21 10:25:59
オリジナル
1801 人が閲覧しました

uniapp を使用してマルチレベルのリンケージセレクター効果を実現する

Uniapp を使用してマルチレベル リンケージ セレクター効果を実現する

1. はじめに
マルチレベル リンケージ セレクターは、多くのアプリケーションで使用される一般的なインタラクティブ効果です。シナリオは で見ることができます。 Uniapp では、Uniapp が提供するコンポーネントと API を使用することで、この効果を簡単に実現できます。この記事では、Uniapp を使用してマルチレベル リンケージ セレクターを実装する方法を紹介し、具体的なコード例を示します。

2. 準備作業
実装を開始する前に、次の作業を準備する必要があります:

  1. Node.js、HBuilderX などの Uniapp 開発環境をインストールします。 ;
  2. Uniapp プロジェクトを作成し、適切なテンプレートを選択します;
  3. コンポーネント、ページ ルーティングなど、Uniapp の基本的な開発知識を理解します。

3. 実装手順

  1. セレクターのデータ ソースの作成
    マルチレベル リンケージ セレクターの中核はデータ ソースです。要件を満たす一連のデータ ソースを作成します。 3 レベルのリンケージ セレクターを例として、配列を定義します。配列の各要素はオブジェクトであり、オブジェクトには表示テキストと子配列が含まれます。子配列もオブジェクトなどで構成されます。

たとえば、州と都市のデータ ソースを作成します。

const data = [
  {
    name: '北京市',
    children: [
      {
        name: '东城区',
        children: [
          { name: '东华门街道' },
          { name: '东四街道' }
        ]
      },
      {
        name: '西城区',
        children: [
          { name: '西单街道' },
          { name: '西直门街道' }
        ]
      }
    ]
  },
  {
    name: '上海市',
    children: [
      {
        name: '黄浦区',
        children: [
          { name: '外滩街道' },
          { name: '南京东路街道' }
        ]
      },
      {
        name: '徐汇区',
        children: [
          { name: '徐家汇街道' },
          { name: '田林街道' }
        ]
      }
    ]
  }
];
ログイン後にコピー
  1. ページ構造とスタイルを実装します
    Uniapp では、Uniapp が提供するコンポーネントを使用できます。ページ構築。まず、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>
ログイン後にコピー

4. 実行とデバッグ
HBuilderX で、適切な実行環境を選択します。シミュレーターや実機上でプレビューやデバッグが可能です。すべてがうまくいけば、マルチレベルリンケージセレクターの効果が確認できます。

5. 概要
この記事では、データ ソースの作成、ページ構造とスタイルの実装、セレクター イベントの処理など、Uniapp を使用してマルチレベル リンケージ セレクターを実装する方法を紹介します。これらの手順を通じて、Uniapp でマルチレベル リンケージ セレクターの効果を簡単に実現できます。この記事がUniapp開発に役立つことを願っています。

以上がuniapp を使用してマルチレベルのリンケージセレクター効果を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!