ホームページ > 記事 > ウェブフロントエンド > uniapp を使用してマルチレベルのリンケージセレクター効果を実現する
Uniapp を使用してマルチレベル リンケージ セレクター効果を実現する
1. はじめに
マルチレベル リンケージ セレクターは、多くのアプリケーションで使用される一般的なインタラクティブ効果です。シナリオは で見ることができます。 Uniapp では、Uniapp が提供するコンポーネントと API を使用することで、この効果を簡単に実現できます。この記事では、Uniapp を使用してマルチレベル リンケージ セレクターを実装する方法を紹介し、具体的なコード例を示します。
2. 準備作業
実装を開始する前に、次の作業を準備する必要があります:
3. 実装手順
たとえば、州と都市のデータ ソースを作成します。
const data = [ { name: '北京市', children: [ { name: '东城区', children: [ { name: '东华门街道' }, { name: '东四街道' } ] }, { name: '西城区', children: [ { name: '西单街道' }, { name: '西直门街道' } ] } ] }, { name: '上海市', children: [ { name: '黄浦区', children: [ { name: '外滩街道' }, { name: '南京东路街道' } ] }, { name: '徐汇区', children: [ { name: '徐家汇街道' }, { name: '田林街道' } ] } ] } ];
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>
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 サイトの他の関連記事を参照してください。