最近、Vue のソースコードを勉強していて、Vue で親コンポーネントと子コンポーネント間でデータを転送するいくつかの方法をまとめました。 1. 小道具とイベント親コンポーネントは子コンポーネントに props データを渡し、子コンポーネントはイベントをトリガーして親コンポーネントにデータを返します。コードは次のとおりです。 //サブコンポーネント <テンプレート> <div @click="changeName('YYY')">{{名前}}</div> </テンプレート> <スクリプト> エクスポートデフォルト{ props:['name']、//またはprops:{name:{type:String,default:''}} 方法:{ //子コンポーネントのプロパティデータを変更することはできません。親コンポーネントが処理できるようにイベントをトリガーする必要があります。changeName(newName){ this.$emit('changeName',newName) } } } </スクリプト> //親コンポーネント <テンプレート> <div> <child-comp :name="名前" @changeName="変更名"></child-comp> </div> </テンプレート> <スクリプト> 'path' から childComp をインポートします。 エクスポートデフォルト{ データ(){ {name:'XXX'} を返します }, コンポーネント:{ 子コンプ }, 方法:{ 名前を変更する(新しい名前){ this.name = 新しい名前; } } } </スクリプト> 上記は完全なプロセスです。親コンポーネントは props を通じて子コンポーネントにデータを渡し、子コンポーネントはイベントをトリガーします。親コンポーネントはイベントをリッスンし、それに応じて処理します。 2.参照ref 属性は、子コンポーネントまたはネイティブ DOM で定義できます。子コンポーネントにある場合は、子コンポーネント インスタンスを指します。ネイティブ DOM にある場合は、ネイティブ DOM 要素を指します (要素の選択に使用できるため、querySelector の問題が解消されます)。 データを渡すという考え方は次のとおりです。親コンポーネントの ref を通じて子コンポーネントのインスタンスを取得し、子コンポーネントのメソッドを呼び出して、関連するデータをパラメーターとして渡します。コードは次のとおりです。 //サブコンポーネント <テンプレート> <div>{{親メッセージ}}</div> </テンプレート> <スクリプト> エクスポートデフォルト{ データ(){ 戻る { 親メッセージ:'' } }, 方法:{ getMsg(メッセージ){ this.parentMsg = メッセージ; } } } </スクリプト> //親コンポーネント <テンプレート> <div> <child-comp ref="child"></child-comp> <button @click="sendMsg">メッセージを送信</button> </div> </テンプレート> <スクリプト> 'path' から childComp をインポートします。 エクスポートデフォルト{ コンポーネント:{ 子コンプ }, 方法:{ 送信メッセージ(){ this.$refs.child.getMsg('親メッセージ'); } } } </スクリプト> 3. provideとinjectは本番環境での使用は公式には推奨されていませんProvide は提供することを意味します。コンポーネントが provide を通じてデータを提供する場合、その子孫コンポーネントは inject を使用して注入を受け入れ、祖先コンポーネントによって渡されたデータを使用できるようになります。コードは次のとおりです。 //子供 <テンプレート> <div>{{アプリ名}}</div> </テンプレート> <スクリプト> エクスポートデフォルト{ 挿入:['appName'] } </スクリプト> //根 エクスポートデフォルト{ データ(){ 戻る { アプリ名:'テスト' } }, 提供:['appName'] } 4.ヴュークスVue が公式に推奨するグローバル状態管理プラグイン。詳細はありません。 これで、Vue で親コンポーネントから子コンポーネントにデータを渡すいくつかの方法についての記事は終了です。Vue で親コンポーネントから子コンポーネントにデータを渡す方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Ubuntu 18.04にMySQL 5.7をインストールする
目次1. データ操作言語 (DML) 2. データを追加する(挿入) 3. 既存のテーブルをコピーし...
目次クエリキャッシュの最適化概要クエリプロセスクエリキャッシュ構成クエリキャッシュの無効化メモリ管理...
例えば: <link rel="スタイルシート" href="h...
目次Express ミドルウェアとは何ですか? Expressミドルウェアを作成するための要件Exp...
会社のウェブサイトのアクセス数が増えてくると(1日10万PV以上)、当然MySQLがボトルネックにな...
目次スケルトンスクリーンとは何ですか?デモデザインのアイデア具体的な実装スケルトンスクリーンとは何で...
この記事では、Linux環境でのmysql5.6.24自動インストールスクリプトコードを参考までに共...
数年前、Taobaoのモバイル版の左下隅に面白い丸いボタンがあったことを覚えています。それをクリック...
Union は、重複行を除外し、デフォルトのソートを実行する、データに対する結合操作です。Union...
JS の async 関数と await キーワード 関数ヘルワールド() { 「こんにちは!美しい...
開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...
ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...
最近、外国人が CSS3 を使用してアコーディオン効果を実現しているビデオを見たので、自分で学習した...
序文Linux のスケジュールされたタスクを実装する方法としては、cron、anacron、at な...
Shopify Plus は、私たちが設立した e コマース プラットフォームのエンタープライズ バ...