VueのVuexの4つの補助機能について

VueのVuexの4つの補助機能について

1. 補助機能

コンポーネントが複数の状態を取得する必要がある場合、これらすべての状態を計算プロパティとして宣言すると、多少の繰り返しと冗長性が生じます。この問題を解決するには、計算されたプロパティを生成するmapStateヘルパー関数を使用して、キー入力を節約します。

スクリプトに補助関数を導入します。

'vuex' から { mapState、mapMutations、mapActions、mapGetters } をインポートします。

2. 例

1. mapState と mapGetters

stategettersプロパティ、つまり特定の値を返すため、 mapStatemapGetters計算プロパティcomputedに配置する必要があります。

例えば:

これで、ストアの状態にプロパティ userName が存在します。

Home.vue コンポーネントでは、mapState を通じて取得され、インターフェースに表示されます。

計算されたコード:

  計算:{
    //補助関数を通じてストア内の状態を取得する
    ...mapState(['ユーザー名'])
    //同等: 次の通常の計算プロパティコード /* userName (){
      this.$store.state.userName を返します
    }*/
  }

ページの呼び出し:

結果:

このように、単純な...mapState(['userName'])を使用して、比較的長い計算プロパティ関数を置き換えることができます。
mapGettersの使い方はmapStateと同じです。computed computed呼び出すことができます。ここではmapStateのみを例として取り上げます。

2. mapMutations と mapActions

mutationsactions関数を返すため、コンポーネントの methods プロパティに配置する必要があります。

例えば:

現在、 storemutationsには、現在のユーザーにウェルカム ウィンドウをポップアップ表示するヒント機能があります。

上の図のmethods内のコードは、ストア内のミューテーションを取得するためのショートカットです。

  方法:{
    // ストア内のミューテーションを取得するための略語
    ...mapMutations(['tip'])
    ///* tip(){ と同等
      this.$store.commit('tip');
    }*/
  }

コンポーネントの呼び出し: created関数内の tip メソッドを呼び出して、ウェルカム ポップアップ ウィンドウを実装します。

mapActionsmapMutationsの使用方法は同じです。つまり、これらはnethodsで宣言できるため、ストア内のアクションとミューテーションの参照が簡単になります。

上記の例からわかるように、補助関数の利点は、ストア内の状態、ゲッター、ミューテーション、アクションの取得を簡素化できることです。もちろん、補助機能を使用しなくても上記の機能を実現できますが、コンポーネント内で複数の状態を同時に使用する必要がある場合は、補助機能を使用すると便利になります。

以上で、VueのVuexの4つの補助機能についての記事は終了です。Vuexの補助機能に関するより詳しい内容は、123WORDPRESS.COMの過去記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

<<:  MySQL データベース内の varchar 型の数値のサイズを比較する方法

>>:  Linux環境でログファイルを表示するコマンドの詳細な説明

推薦する

Linux CentOS6.5 yum インストール mysql5.6

この記事では、Linux yumを使用してmysql5.6をインストールする簡単な手順を参考までに紹...

JS で async await をエレガントに使用する方法

目次jQuery の $.ajax Webpack時代の始まり約束について深く考えるネストをなくすj...

docker で zabbix_agent をデプロイする方法

zabbix_agent のデプロイメント:推奨事項: zabbix_agent は docker-...

Docker デプロイメントサービスの落とし穴を登る過程の詳細

初めて書きます。自己紹介させてください...みなさんこんにちは。私はジャスミンです。なぜジャスミンと...

MySQLに挿入する前にデータが存在するかどうかを確認する方法

ビジネスシナリオ: 訪問者の訪問状況を記録する必要があるが、繰り返し記録することはできない挿入する前...

Vueは大画面ページのスクリーン適応を実現します

この記事では、大画面ページのスクリーンアダプテーションを実現するためのVueの具体的なコードを参考ま...

ウェブページのアクセス速度に関する主な問題と解決策

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

一般的な docker コマンドの概要 (推奨)

1. 要約:一般的に、次のカテゴリに分類できます。 Docker 環境情報 — docker [i...

React スキャフォールディングのパスエイリアスを設定する方法

この記事を書いている時点でのReactのバージョンは16.13.1です1 npm run eject...

ファイルをアップロードするときに enctype フィールドを使用する理由は何ですか?

FORM 要素の enctype 属性は、フォーム データがサーバーに送信されるときに使用されるエン...

SQL ステートメント実行の詳細な説明 (MySQL アーキテクチャの概要 -> クエリ実行プロセス -> SQL 解析順序)

序文:私はずっと、SQL 文がどのように、どのような順序で実行されるのかを知りたいと思っていました。...

ReactのEffectListの簡単な分析

目次EffectList コレクション最初のレンダリング時のEffectList EffectLis...

CSS でより美しいリンクプロンプト効果をカスタマイズする方法

提案: コードをできるだけ手書きすると、学習の効率と深さを効果的に向上できます。デフォルトでは、&l...

Vue.js フロントエンドプロジェクト向け多言語ソリューションのアイデアと実践

目次1. 通常どのようなコンテンツを処理する必要があるか2. 基本的な考え方3. 具体的な実践の詳細...

mysql-canal-rabbitmq のインストールと展開の非常に詳細なチュートリアル

目次1.1. MySQL binlog を有効にする1.2. RabbitMQ の交換とキューを構成...