Vue コンポーネント (Vuex を含む) 間の値の転送に関する簡単な説明

Vue コンポーネント (Vuex を含む) 間の値の転送に関する簡単な説明

Vuex を使用せずにコンポーネント間で値を渡す方法は、親から子、または兄弟コンポーネントを介して行われます。

父から息子へ:

父親コンポーネント:

<テンプレート>
    <div>
        <HELLOWORLD :needData="コンテンツ"></HELLOWORLD>
    </div>
</テンプレート>

<スクリプト>
'../components/HelloWorld.vue' から HELLOWORLD をインポートします。
エクスポートデフォルト{
    コンポーネント:{
        こんにちは世界
    },
    データ(){
        戻る {
            コンテンツ:"コンテンツ"
        }
    }
}
</スクリプト>

<style lang="less" スコープ>

</スタイル>

SonComponent (サブコンポーネント名は HELLOWORLD):

<テンプレート>
    <div>
        <h1>ハローワールド</h1>
    </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
    プロパティ:["needData"],
    データ(){
        戻る {
            H:this.needData、
        }
    },
    マウントされた(){
        コンソールにログ出力します。
    }
}
</スクリプト>

<style lang="less" スコープ>

</スタイル>

ここに画像の説明を挿入

息子から父へ:

父親コンポーネント:

<テンプレート>
    <div>
        <HELLOWORLD @sendData="getData"></HELLOWORLD>
    </div>
</テンプレート>

<スクリプト>
'../components/HelloWorld.vue' から HELLOWORLD をインポートします。
エクスポートデフォルト{
    コンポーネント:{
        こんにちは世界
    },
    データ(){
        戻る {
            
        }
    },
    方法:{
        getData(sonData){
            console.log("データ=>",sonData);
        },
    }
}
</スクリプト>

<style lang="less" スコープ>

</スタイル>

息子コンポーネント:

<テンプレート>
    <div>
        <h1>ハローワールド</h1>
    </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
    データ(){
        戻る {
            コンテンツ:"コンテンツ"
        }
    },
    マウントされた(){
        this.$emit("sendData",this.content);
    }
}
</スクリプト>

<style lang="less" スコープ>

</スタイル>

効果画像:

ここに画像の説明を挿入

実際、親コンポーネントと子コンポーネント間でデータを転送するには、親コンポーネントの関数または子コンポーネントの関数を呼び出すことによってデータを転送することもできます。 Vueでは、子コンポーネントが親コンポーネントの関数を呼び出す。

https://www.jb51.net/article/134732.htm

Vue親コンポーネントは子コンポーネントの関数を呼び出す

https://www.jb51.net/article/219793.htm

Vuex は Vue フレームワークの不可欠な部分です。

Vuex は、複数のコンポーネント間の通信が必要な場合に特に重要です。たとえば、親コンポーネントでデータが生成されるが、そのデータをサブコンポーネントのサブコンポーネントで使用する必要がある場合、Vuex を使用して管理できます。また、兄弟コンポーネント間で値を渡す必要がある場合にも、Vuex を使用できます。

Vue の store.js には 5 つのプロパティがあります。
これらは、状態、ミューテーション、アクション、ゲッター、およびモジュールです。

構造は次のとおりです。

a={とする
  州: {
  	名前:"モジュールA"
  },
  //ミューテーションは特に状態属性のデータを変更するために使用されます。ミューテーション: {
  	setFun(状態、項目){
		状態名=アイテム;
	}
  }
}

デフォルトの新しいVuex.Storeをエクスポートします({
  //state はデータの保存専用ですstate: {
  	数:100,
  	コンポーネントを使用する:{
		名前:"A",
	},
	useBcomponent:"コンテンツ",
  },
  //ミューテーションは特に状態属性のデータを変更するために使用されます。ミューテーション: {
  	setStateFun(状態、項目){
		state.useBcomponent="Bコンポーネント";
	}
  },
  アクション: {
  	httpGetData(ストア、アイテム){
		タイムアウトを設定します(()=>{
			console.log(アイテム);
			store.commit("setStateFun",アイテム);
		},3000)
	}
  },
  ゲッター:{
  //ゲッター内の関数を呼び出すときにパラメータは渡されません getterFun1(state){
		state.num++ を返す
	}
  //ゲッターで関数を呼び出す場合、入力パラメータがあります gettterFun2(state){
		関数を返す(val){
			state.num+=val を返します。
		}
	}
  },
  モジュール:
  	モジュールA:a
  }
});
}

状態内のデータは、さまざまなコンポーネントからアクセスできます。

状態データを取得します:

this.$store.state.state オブジェクト内のデータ。
たとえば、let val = this.$store.state.num;

状態データを変更するには、Vuex の変異オブジェクト内の関数を呼び出すだけです。

this.$store.commit("関数名","データ");
たとえば、 this.$store.commit("setStateFun","testSetItem");

Vuex でリクエストを行うために使用されるアクション オブジェクト

this.$store.dispatch("関数名","データ");
たとえば、 this.$store.dispatch("httpGetData","testItem");

Vueの計算プロパティに似たゲッターオブジェクト

this.$store.getters.関数名;
たとえば、パラメータが入力されていない場合は this.$store.getters.getterFun1;
//入力パラメータがある場合 this.$store.getters.getterFun2(123);

モジュール オブジェクトは、使用する必要があるストア モジュールを分離することに似ています。各モジュール オブジェクトはモジュールに対応します。

//モジュール オブジェクトの状態データを取得します。this.$store.state.modules オブジェクト名.state 値;
たとえば this.$store.state.ModuleA.name
//モジュール オブジェクトのミューテーション関数を使用します。this.$store.commit("関数名","入力パラメータ データ");
たとえば、 this.$store.commit("setFun","itemabc");
//ここで注意すべき点は、モジュールモジュールと外部(モジュールオブジェクトモジュールではない)のミューテーションオブジェクトに同じ名前の関数がある場合、呼び出されたときに同じ名前の両方の関数が実行されるということです。

これで、Vue コンポーネント (Vuex を含む) 間の値の転送について簡単に説明したこの記事は終了です。Vue コンポーネント間の値の転送に関する詳細なコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueのコンポーネント間で通信して値を渡すいくつかの方法の詳細な説明
  • Vue コンポーネント間で値を渡す方法をどうやって知っていますか?
  • Vue3 における非親子コンポーネントの値転送の詳細な説明
  • Vue3 における親コンポーネントと子コンポーネント間の値の転送の詳細な説明
  • Vue の親子コンポーネントの値転送と一方向データフローの問題の詳細な説明
  • 非常にシンプルでわかりやすいvueコンポーネントの値転送

<<:  Linux (CentOS7) で RPM を使用して MySQL 8.0.11 をインストールするチュートリアル

>>:  MySQL における UNION と UNION ALL の基本的な使い方

推薦する

Vueはシンプルな計算機を実装する

この記事では、参考までに、Vue の具体的なコードで簡単な計算機を実装する方法を紹介します。具体的な...

MySQL データベース操作 (作成、選択、削除)

MySQL データベースの作成MySQL サービスにログインしたら、create コマンドを使用し...

CSS で写真のスタッキング効果を実装するサンプルコード

成果を達成するステップ1. 初期index.html最初の写真、一番上の写真を作成します。写真の i...

React Nativeの起動プロセスの詳細分析

はじめに: この記事ではreact-native-cliで作成したサンプル プロジェクト (Andr...

CSSカスタムプロパティの予備的な理解

現在、CSS プリプロセッサは Web 開発の標準となっています。 プリプロセッサの主な利点の 1 ...

MySQL ステートメントの概要

目次1. データベースの使用を選択2. 情報を表示する3. テーブルを作成する4. データを挿入する...

クラウドネイティブテクノロジー Kubernetes (K8S) の紹介

目次01 Kubernetes とは何ですか? 02 KubernetesとCompost+Swar...

MySQLのExcelへのエクスポート方法の分析

この記事では、MySQL を使用してデータを Excel にエクスポートする方法について説明します。...

MySQLデータベースのスケジュールバックアップを実装する方法

1. シェルスクリプトを作成する vim バックアップdb.sh 次のようにスクリプトを作成します。...

LAMP ソースコードを使用したエンタープライズレベルのインストールチュートリアル

目次LAMPアーキテクチャ1.ランプの紹介2. WebサービスワークフローWebサーバーのリソースは...

Flex レイアウトで適応型ページを作成する (構文と例)

Flex レイアウトの紹介英語の Flex はフレキシブル ボックス、つまり伸縮性のあるボックスを...

Ubuntu 18.04 サーバーのパスワードを忘れたり改ざんされた場合にパスワードをリセットする方法

最近、サーバー上のアカウントが2つハッキングされ、パスワードが改ざんされました。幸い、まだ使えるアカ...

VueはExcelテーブルをインポートし、インポートに失敗したデータを自動的にダウンロードします。

次のような要件があります: インポート ボタン。ボタンをクリックして Excel テーブルをインポー...

Windows 64 ビット版 MySQL 5.7 以降の解凍パッケージにデータディレクトリと my-default.ini がなく、サービスが起動できない問題の簡単な解決方法 (問題概要)

私は SQL の初心者で、オープンソースのインストールは非常に簡単だと思っていましたが、その過程でい...

MySQL 5.7.17 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

インターネット上にはMySQL 5.7.17のインストールチュートリアルがほとんどなく不十分なので、...