Vue における v-model を使用したクロスコンポーネントバインディングの基本的な実装方法

Vue における v-model を使用したクロスコンポーネントバインディングの基本的な実装方法

みなさんこんにちは。今日はv-modelを使って親子コンポーネントのバインディング効果を実現する方法についてお話します。

1: シンプルバージョンのコードは次のとおりです。

親コンポーネント:

<テンプレート>
  <div>
  // 3: 子コンポーネントを使用し、v-model を使用して <About v-model="father"/> をバインドします。
  </div>
</テンプレート>

<スクリプト>
// 1: サブコンポーネントをインポートします。import About from "./About";
エクスポートデフォルト{
// 2: サブコンポーネントを登録する: {
    について、
  },
  データ() {
      戻る {
      // 空の父親の値:''
      }
  },
  //コンポーネントデータの変更を監視する watch:{
      父(val){
          コンソールログ(val);
      }
  }
};
</スクリプト>

サブコンポーネント:

<テンプレート>
  <div>
  // 2: v-model を使用して <input type="text" v-model="son"> をバインドします。
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
    // 1: 親コンポーネントから情報プロパティを受け取る: {
        価値:{
            タイプ:文字列、
            デフォルト:''
        }
    },
    データ() {
        戻る {
        // 3: 空の値を代入する:''
        }
    },
    // 4: 変更をリッスンする watch:{
        // 息子に値を割り当てる   
        価値(){
        // ここで this.value は props の値です
            this.son = this.value
        },
        // 親コンポーネントにsonを渡すson(){
            this.$emit('input',this.son)
        }
    }
}
</スクリプト>

子コンポーネントが親コンポーネントに渡されるときに $emit の最初のパラメータが 'input' である理由については、興味のある方は v-model 実装の原則について学ぶことができます。

2: プロジェクト内での使用に移りましょう(子コンポーネントの画像アドレスを取得し、親コンポーネントに渡し、画像情報を同期的に更新します)

基本的に同じ

Ⅰ: 親コンポーネントに子コンポーネントを導入し、子コンポーネントタグでv-modelを使用して空の値を割り当てる
(UploadImg タグはインポートされたサブコンポーネントです)

Ⅱ: 次に、props を使用して子コンポーネントで受け取ります。

III: サブコンポーネントページでも v-model を使用し、データに空のイメージを割り当てます。

IV: サブコンポーネントの変更を監視するためにwatchを使用する

分解図のコード:

value 関数は、渡された親コンポーネントを子コンポーネントに割り当てます。This.value は props の値です。

価値() {
      this.SonStaffPhoto = this.value
      console.log(this.SonStaffPhoto)
    }

これはv-modelにバインドされた子コンポーネント関数であり、親コンポーネントに渡すために使用されます。

息子スタッフ写真() {
      this.$emit('input', this.SonStaffPhoto)
    },

この時点で、親コンポーネントに渡したいコンテンツを this.SonStaffPhoto に割り当てることができます(画像アドレスを格納する変数に割り当てました)

V: 親コンポーネントの変更を監視することもできます。

親コンポーネントの This.staffPhoto にも、バインドするコンテンツを割り当てることができます (子コンポーネントの画像が更新され、親コンポーネントも同期的に更新されるように、最新の画像変数に割り当てました)

要約する

これで、Vue で v-model を使用したクロスコンポーネントバインディングの基本的な実装方法についての記事は終了です。Vue で v-model を使用したクロスコンポーネントバインディングに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • v-model 双方向バインディングデータを実装する vue カスタム コンポーネントのサンプル コード
  • vue3 コンポーネントでの v-model の使用と詳細な説明
  • Vue の v-model ディレクティブと .sync 修飾子の違いの詳細な説明
  • Vue の双方向イベントバインディング v-model の原理についての簡単な説明
  • Vueはv-modelを使用してel-paginationコンポーネントのプロセス全体をカプセル化します。
  • Vue で親子コンポーネントの値を双方向バインドするために v-model を使用するときに発生する問題と解決策
  • Vue フォーム入力ボックスがフォーカスおよびぼかしイベントをサポートしていない問題の解決策
  • カスタムイベントを使用した Vue のフォーム入力コンポーネントの詳細な使用方法 [日付コンポーネントと通貨コンポーネント]
  • Vue フォーム入力バインディングのサンプルコード
  • Vue フォームの入力フォーマットの中国語入力方法の異常
  • Vue フォーム入力バインディング v-model

<<:  mysqlは昨日の日付、今日の日付、明日の日付、前の時間と次の時間の時刻を取得します

>>:  Linux 上の MySQL 5.7 でパスワードを忘れる問題を解決する

推薦する

Linux での MySQL のインストールに関するチュートリアル

目次1. 古いバージョンを削除する2. サーバーのカーネルタイプを確認し、適切なバージョンをダウンロ...

Vue の高度な構築プロパティの詳細な説明

目次1. ディレクティブカスタムディレクティブ2. ミックスイン3. 継承を拡張する4. 提供して注...

CentOS サーバーに FFmpeg をインストールするための完全な手順

序文サーバーシステム環境は、CentOS 6.5 (最終) です。 FFmpeg をサーバーに正常に...

MySQLは文字列関数のSQL文をインターセプトします

1. left(name,4)は左の4文字をインターセプトしますリスト: SELECT LEFT(2...

CSS トランジションを使用した円形ホバー効果のサンプルコード

この記事では ソースコードのオンラインプレビューとダウンロード今日のチュートリアルでは、円のホバー効...

CSSコンテンツ属性の具体的な使用法

コンテンツ属性は通常、::before および ::after 疑似要素で使用され、疑似要素のコンテ...

Linuxのpasswdコマンドの使用

1. コマンドの紹介passwd コマンドは、ユーザー パスワード、アカウント ロック、パスワードの...

jsを使用して中国語からピンインへの変換の完全な手順を実行します

jsを使用して、中国語をピンインに変換するパッケージを作成しました。倉庫のアドレスはpinyin-p...

MySQLデータベースの数千万件のデータクエリとストレージの詳細な説明

目次百万レベルのデータ処理ソリューションデータストレージ構造設計クエリステートメントの最適化1000...

MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...

MySQL 一時テーブルの簡単な使用法

MySQL 一時テーブルは、一時的なデータを保存する必要がある場合に非常に便利です。一時テーブルは現...

Ubuntu で XFS ファイルシステム用の LVM を作成する方法

序文lvm (論理ボリューム マネージャー) 論理ボリューム管理は、Linux システムのニーズを満...

Web デザイン ヘルプ: Web フォント サイズ データ リファレンス

<br />内容はインターネットから転載したものです。どこから見つけたのか忘れてしまいま...

CentOS 8 システム FTP サーバーのインストールとパッシブ モードの設定の詳細なチュートリアル

目次1. 基本を理解する2. システム環境を確認する3. ftpコマンドをインストールする[オプショ...

Docker Swarm クラスタ管理の使用と原理の分析

Swarm クラスター管理導入Docker Swarm は Docker 用のクラスター管理ツールで...