Vue コンポーネント開発: マルチレベル リンケージ セレクターの実装
Vue コンポーネント開発: マルチレベル リンケージ セレクターの実装
フロントエンド開発では、州や都市の選択など、マルチレベル リンケージ セレクターが一般的な要件です。 、年、月、日の選択など。この記事では、Vue コンポーネントを使用してマルチレベル リンケージ セレクターを実装する方法を、具体的なコード実装例とともに紹介します。
マルチレベルリンケージセレクターを実装するにはどうすればよいですか?
マルチレベル リンケージ セレクターを実装するには、Vue のコンポーネント開発アイデアを使用して、大きなセレクターを複数のサブコンポーネントに分割し、各レベルのオプションのレンダリングを担当する必要があります。レベルの選択が変更されるたびに、後続のレベルのオプションを更新する必要があり、そのためには Vue コンポーネント間の通信メカニズムを使用する必要があります。
また、セレクターは外部から初期値を受け取り、選択が変化したときに外部にイベント通知を送信する必要があります。これは、props と $emit を使用して実現できます。
このマルチレベル リンケージ セレクター コンポーネントを段階的に実装してみましょう。
ステップ 1: サブコンポーネントの定義
まず、各レベルのセレクター サブコンポーネントを定義します。以下は、州セレクターの単純なサブコンポーネントのコードです:
<template> <select v-model="selected"> <option value="">请选择</option> <option v-for="item in options" :value="item">{{ item }}</option> </select> </template> <script> export default { props: { options: { type: Array, required: true }, value: { type: String, default: '' } }, data() { return { selected: this.value } }, watch: { selected(newValue) { this.$emit('change', newValue) } } } </script>
コードの説明:
- select タグを使用してドロップダウン オプション ボックスをレンダリングし、v-モデルを使用して現在のオプションの値をバインドし、data() を通じて選択した値を初期化します;
- 監視を使用して選択した値の変更を監視し、オプションが変更されたときに変更イベントを送信し、親コンポーネントに通知します新しく選択された値の値。 ステップ 2: 親コンポーネントを定義する次に、マルチレベル リンケージ セレクターの親コンポーネントを定義します。このコンポーネントは、すべての子コンポーネントをレンダリングし、オプションが変更されたときに後続の子コンポーネントのオプションを更新する役割を果たします。
次は、単純な 2 レベルのリンケージ セレクターのコードです:
<template> <div> <CitySelect :options="provinces" v-model="selectedProvince"/> <CitySelect :options="cities" v-model="selectedCity"/> </div> </template> <script> import CitySelect from './CitySelect.vue' export default { components: { CitySelect }, data() { return { provinces: ['广东', '江苏', '浙江'], cities: { '广东': ['广州', '深圳'], '江苏': ['南京', '苏州'], '浙江': ['杭州', '宁波'] }, selectedProvince: '', selectedCity: '' } }, watch: { selectedProvince(newValue) { this.selectedCity = '' if (newValue) { this.cities = this.$data.cities[newValue] } else { this.cities = [] } } } } </script>
コードの説明:
テンプレートで 2 つの CitySelect サブコンポーネントを使用し、それらを個別にレンダリングします。 . 州と市の選択ボックスは、v-model を通じて現在選択されている州と市をバインドします。 データ関数で 2 つの配列、州と市を定義します。州の配列にはすべての州が格納され、市のオブジェクトには格納されます。すべての都市では、selectedProvince と selectedCity を使用して、現在選択されている州と都市を記録します。- ウォッチで selectedProvince の変更を監視し、州が変更されたときに次のレベルの都市をレンダリングするために使用される都市配列を更新します。選択ボックス。 ステップ 3: すべてのサブコンポーネントを結合するすべてのサブコンポーネントと親コンポーネントを定義したら、すべてのサブコンポーネントを結合して完全なマルチコンポーネントを形成するだけです。 -レベルのリンケージセレクター。
次は、単純な 3 レベルのリンケージ セレクターのコードです:
<template> <div> <RegionSelect :options="provinces" v-model="selectedProvince"/> <RegionSelect :options="cities" v-model="selectedCity"/> <RegionSelect :options="districts" v-model="selectedDistrict"/> </div> </template> <script> import RegionSelect from './RegionSelect.vue' export default { components: { RegionSelect }, data() { return { provinces: ['广东', '江苏', '浙江'], cities: { '广东': ['广州', '深圳'], '江苏': ['南京', '苏州'], '浙江': ['杭州', '宁波'] }, districts: { '广州': ['天河区', '海珠区'], '深圳': ['福田区', '南山区'], '南京': ['玄武区', '鼓楼区'], '苏州': ['姑苏区', '相城区'], '杭州': ['上城区', '下城区'], '宁波': ['江东区', '江北区'] }, selectedProvince: '', selectedCity: '', selectedDistrict: '' } }, watch: { selectedProvince(newValue) { if (newValue) { this.cities = this.$data.cities[newValue] this.selectedCity = '' this.districts = [] } else { this.cities = [] this.districts = [] } }, selectedCity(newValue) { if (newValue) { this.districts = this.$data.districts[newValue] this.selectedDistrict = '' } else { this.districts = [] } } } } </script>
コードの説明:
テンプレートで 3 つの RegionalSelect サブコンポーネントを使用し、それらを個別にレンダリングします。州、市、および地区の選択ボックスは、v-model を通じて現在選択されている州、市、および地区にバインドされています。 データ関数で 3 つのオブジェクトである州、市、地区を定義し、州配列ストアを定義します。 all states 、city オブジェクトにはすべての都市が格納され、districts オブジェクトにはすべての地区が格納されます。現在選択されている州、都市、および地区を記録するには、 selectedProvince、selectedCity、および selectedDistrict を使用します。- selectedProvince と selectedCity の変更を監視します。州または都市が変更されると、それ以降の選択ボックスのオプションと選択値が更新されます。 3段階のリンケージセレクターが完成しました!以下に示すように、Vue コンポーネント テンプレートでコンポーネントを参照できます。
- 概要
<template> <div> <RegionSelect v-model="selectedRegion"/> </div> </template> <script> import RegionSelect from './RegionSelect.vue' export default { components: { RegionSelect }, data() { return { selectedRegion: ['广东', '深圳', '南山区'] } } } </script>
ログイン後にコピーこの記事では、Vue コンポーネントを使用してマルチレベル リンケージ セレクターを実装する方法を紹介します。親コンポーネント 、およびすべてのサブコンポーネントを組み合わせるプロセス。この例を通じて、Vue コンポーネント開発の基本的な考え方とコンポーネント間の通信メカニズムを理解することができます。もちろん、実際の開発では、非同期データの取得やサブコンポーネント自体のスタイルの変更など、より詳細な検討が必要になります。これらの内容については、この記事では扱いません。
以上がVue コンポーネント開発: マルチレベル リンケージ セレクターの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Vue と Element-UI を使用してマルチレベルのドロップダウン ボックス機能を実装する方法 はじめに: Web 開発では、マルチレベルのリンク ドロップダウン ボックスは一般的な対話方法です。ドロップダウン ボックスでオプションを選択すると、後続のドロップダウン ボックスの内容を動的に変更できます。この記事では、Vue と Element-UI を使用してこの機能を実装する方法とコード例を紹介します。 1. 準備 まず、Vue と Element-UI がインストールされていることを確認する必要があります。次のコマンドを使用してインストールできます: npmins

Vue コンポーネント通信: コンポーネント破棄通信には $destroy を使用します。 Vue 開発において、コンポーネント通信は非常に重要な側面です。 Vue は、props、emit、vuex など、コンポーネント通信を実装するためのさまざまな方法を提供します。この記事では、コンポーネント通信の別の方法である $destroy を使用したコンポーネント破棄通信を紹介します。 Vue では、各コンポーネントにはライフサイクルがあり、これには一連のライフサイクル フック関数が含まれます。コンポーネントの破棄もその 1 つです。Vue は $de を提供します。

Vue 実践戦闘: 日付ピッカー コンポーネント開発 はじめに: 日付ピッカーは日常の開発でよく使用されるコンポーネントで、簡単に日付を選択でき、さまざまな設定オプションが提供されます。この記事では、Vue フレームワークを使用して単純な日付ピッカー コンポーネントを開発する方法を紹介し、具体的なコード例を示します。 1. 要求分析 開発を始める前に、コンポーネントの機能や特徴を明確にするために要求分析を行う必要があります。一般的な日付ピッカー コンポーネントの機能に従って、次の機能ポイントを実装する必要があります。 基本機能: 日付を選択でき、

フロントエンド テクノロジの継続的な開発により、Vue はフロントエンド開発で人気のあるフレームワークの 1 つになりました。 Vue では、コンポーネントは中心的な概念の 1 つであり、これによりページをより小さく管理しやすい部分に分割できるため、開発効率とコードの再利用性が向上します。この記事では、Vue がコンポーネントの再利用と拡張を実装する方法に焦点を当てます。 1. Vue コンポーネントの再利用ミックスイン ミックスインは、Vue でコンポーネント オプションを共有する方法です。ミックスインを使用すると、複数のコンポーネントのコンポーネント オプションを単一のオブジェクトに結合して最大限に活用できます。

Vue コンポーネントの通信: データ監視のためにウォッチと計算を使用する Vue.js は人気のある JavaScript フレームワークであり、その中心的な考え方はコンポーネント化です。 Vue アプリケーションでは、異なるコンポーネント間でデータを転送および通信する必要があります。この記事では、Vue の watch と computed を使用してデータを監視し、応答する方法を紹介します。 watch Vue では、watch は 1 つ以上のプロパティの変更を監視するために使用できるオプションです。

Vue は、最新の Web アプリケーションの構築に役立つ豊富なツールと機能を提供する人気の JavaScript フレームワークです。 Vue 自体はすでに多くの実用的な機能を提供していますが、場合によっては、Vue の機能を拡張するためにサードパーティのライブラリを使用する必要がある場合があります。この記事では、Vue プロジェクトでサードパーティ ライブラリを使用する方法を紹介し、具体的なコード例を示します。 1. サードパーティ ライブラリを導入する Vue プロジェクトでサードパーティ ライブラリを使用するための最初のステップは、サードパーティ ライブラリを導入することです。以下の方法で導入できます

Vue のコンポーネントのライフ サイクルを深く理解するには、具体的なコード サンプルが必要です はじめに: Vue.js は、そのシンプルさ、学習の容易さ、効率性、柔軟性により開発者に好まれている進歩的な JavaScript フレームワークです。 Vue のコンポーネント開発では、コンポーネントのライフサイクルを理解することが重要です。この記事では、Vue コンポーネントのライフ サイクルを詳しく説明し、読者が Vue コンポーネントをよりよく理解して適用できるように、具体的なコード例を示します。 1. Vue コンポーネントのライフサイクル図 Vue コンポーネントのライフサイクルは、コンポーネントとして捉えることができます。

Vue コンポーネント開発: タブ コンポーネントの実装方法 最近の Web アプリケーションでは、タブ ページ (Tab) が広く使用されている UI コンポーネントです。 Tab コンポーネントは、関連する複数のコンテンツを 1 ページに表示し、タブをクリックすることでコンテンツを切り替えることができます。この記事では、Vue.js を使用して単純なタブ コンポーネントを実装する方法と詳細なコード例を紹介します。 Vue タブ コンポーネントの構造 タブ コンポーネントは通常、タブとパネルの 2 つの部分で構成されます。ラベルはサーフェスを識別するために使用されます
