ホームページ > 記事 > ウェブフロントエンド > Vue2.0でコンポーネントと親子コンポーネント通信を実装する方法
この記事は主にVue2.0学習におけるVueコンポーネントと親子コンポーネント通信の詳細な説明を紹介していますが、編集者が非常に良い内容だと思ったので、参考として共有させていただきます。エディターをフォローして一緒に見てみましょう
コンポーネントとは何ですか?
vue のコンポーネントは、コンピューター内のすべてのコンポーネント (ハードディスク、キーボード、マウスなど) と同じように、実際にはページの一部であり、独立したロジックまたはインターフェイスを持ち、同時に相互作用することができます。指定されたインターフェイス ルールに統合します。
ページはこのようにナビゲーション、リスト、ポップアップウィンドウ、ドロップダウンリストなどのパーツで構成されています。ページはこれらのコンポーネントの単なるコンテナであり、コンポーネントが不要になった場合、またはコンポーネントを置き換えたい場合は、コンポーネントの動作に影響を与えることなく、いつでも置き換えたり削除したりできます。アプリケーション全体。
フロントエンドのコンポーネント化の中心的な考え方は、巨大で複雑なものを適度な粒度で小さなものに分割することです。
コンポーネントを使用する利点は何ですか?
1. 開発効率の向上
2. 再利用に便利
4. プロジェクト全体の保守性の向上
5. vue のコンポーネント
vue.js のコンパイラーは、それに特別な関数を追加します。vue のコンポーネントは、ネイティブ HTML 要素を拡張し、コンポーネントの基本コンポーネント (スタイル構造、動作ロジック、データ) をカプセル化することもできます。
グローバル登録コンポーネント名の命名規則: キャメルケース、ローストされた文字列
HTML でコンポーネントを使用する: 文字列命名メソッドを使用しますたとえば、ceac02d80e40eb8f4259c3240e8a403516988d5740177eb73253eb9e6eace716 を使用する場合は Vue.compontent('my-compontent',{}) を登録します
<p id="app"> <h2>自定义下拉框</h2> <cus-list></cus-list> <cus-list></cus-list> </p> <script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script> <script type="text/javascript"> // 全局注册组件 Vue.component('cus-list',{ data(){ return { } }, template:` <section> <p> <p> <input type="text"> <input type="button" name="" value=""> <span></span> </p> </p> </section> ` }) new Vue({ el:"#app", data:{ } }) </script>を使用する場合はの場合、ページ上でこのコンポーネントを呼び出すだけで済み、何度でも使用できます。
Component.png
部分登録コンポーネントインスタンスのオプションオブジェクトを通じて登録され、登録されたスコープでのみ使用されます
<p id="app"> <h2>自定义下拉框</h2> <cus-list></cus-list> <cus-list></cus-list> </p> <script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script> <script> new Vue({ el:"#app", components:{ 'cus-list':{ template:` <section> <p> <p> <input type="text"> <input type="button" name="" value=""> <span></span> </p> </p> </section> ` } }, data:{ } }) </script>
部分的に登録されたコンポーネント、現在のインスタンスのスコープでのみ使用できますのみ使用され、スコープ内で再利用することもできます。効果は次のとおりです。
Component.png
親コンポーネントと子コンポーネント間の通信 親コンポーネントは子コンポーネントと通信します親コンポーネント===》子コンポーネント(propsを使用)コンポーネントインスタンスのスコープは次のとおりです孤立している場合、子コンポーネントは親コンポーネントのデータを直接使用できません。カスタム属性を使用してコンポーネントにデータをバインドし、props を使用してコンポーネントに表示される属性名をカスタマイズできます。
つまり、ある一文を覚えておいてください、親コンポーネントが子コンポーネントに値を渡すとき、コンポーネントを呼び出すときにコンポーネントに属性を追加し、それをコンポーネント内で受け取るために props を使用することができます。コンポーネント内の属性名に従って使用されます。<p id="app"> <h2>自定义下拉框</h2> <cus-list btn-value="查询"></cus-list> <cus-list btn-value="搜索"></cus-list> </p> <script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script> <script> Vue.component('cus-list',{ data(){ }, props:['btnValue'], template:` <section> <p> <p> <input type="text"> <input type="button" name="" :value="btnValue"> <span></span> </p> </p> </section> ` }) new Vue({ el:"#app", data:{ } }) </script>ページ効果
props pass value.png
子コンポーネントは親コンポーネントと通信します 子コンポーネント ===>>親コンポーネントはカスタム時間を使用する必要があります、親コンポーネントは $ を使用してカスタム イベントをリッスンし、 $emit は親コンポーネントが処理するカスタム イベントをトリガーします。 1. 子コンポーネントでイベント コンテンツを定義します38831128641c27964a380100f1e34c9d{{item}}bed06894275b65c1ab86501b08a632eb2. v-on でカスタム イベントを受信する v-on:receive="changeValue"
3. 子コンポーネント イベントをトリガーすると、 $emit は親コンポーネントに this.$emit("receive",item);4 を通知します。親コンポーネントは、カスタム イベントに従って対応するフィードバックを提供します。changeValue:function(value){this.val = value;}
次のケースを見てください。input をクリックすると、ドロップダウン リスト ボックスが表示され、対応するリストを選択します。リストの内容が入力ボックスに表示されます。rreee
以上が皆さんのためにまとめたもので、今後皆さんのお役に立てれば幸いです。 関連記事:Django と Vue 構文間の競合を解決する方法
nodejs で Web サイトの画像をクロールする方法
ES6/JavaScript の使用スキルについて (詳細なチュートリアル)
動的に実行する方法WeChat アプレットを使用してプレースホルダー プロンプト テキストを設定します
以上がVue2.0でコンポーネントと親子コンポーネント通信を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。