Vuexの補助関数の使い方

Vuexの補助関数の使い方

マップ状態

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

エクスポートデフォルト{
  // ...
  計算:{
     ...mapState({
         // 矢印関数はコードをより簡潔にすることができます count: state => state.count,
         // 文字列パラメータ 'count' を渡すことは `state => state.count` と同等です
         countエイリアス: 'count',

         // `this` を使用してローカル状態を取得できるようにするには、通常の関数 countPlusLocalState (state) { を使用する必要があります。
             state.count + this.localCount を返す
         }
  	})
  }
}

定義された属性名が状態内の名前と同じ場合は、配列を渡すことができる。

//状態を定義する
定数状態 = {
    カウント:1,
}

//コンポーネントで計算された補助関数を使用します:{
    ...mapState(['count'])
}

マップゲッター

計算:{
    ...mapGetters({
      // `this.doneCount` を `this.$store.getters.doneTodosCount` にマップします
      完了数: 'doneTodosCount'
    })
}

プロパティ名がゲッターで定義されているものと同じ場合は、配列を渡すことができる。

計算:{
  計算: {
  // オブジェクトスプレッド演算子を使用して、計算されたオブジェクトにゲッターを混ぜます...mapGetters([
      '完了したTodosCount'、
      '別のゲッター'、
      // ...
    ])
  }
}

要約:

  • mapStateとmapGettersはどちらもマッピングにcomputedを使用します
  • コンポーネント内でマッピングした後、これを介して使用します。マッピング属性名

マップミューテーション

方法:{
    ...mapMutations({
        add: 'increment' // `this.add()` を `this.$store.commit('increment')` にマップします
    })
}

プロパティ名がmapMutatiosで定義されているものと同じ場合は、配列を渡すことができる。

方法:{
    ...mapMutations([
        'increment', // `this.increment()` を `this.$store.commit('increment')` にマップします

        // `mapMutations` はペイロードもサポートします:
        'incrementBy' // `this.incrementBy(amount)` を `this.$store.commit('incrementBy', amount)` にマッピングします
    ])、
}

マップアクション

方法:{
    ...マップアクション({
        add: 'increment' // `this.add()` を `this.$store.dispatch('increment')` にマップします
    })
}

属性名がmapActiosで定義されているものと同じ場合、配列を渡すことができる。

方法:{
    ...マップアクション([
        'increment', // `this.increment()` を `this.$store.dispatch('increment')` にマップします	
        // `mapActions` はペイロードもサポートします:
        'incrementBy' // `this.incrementBy(amount)` を `this.$store.dispatch('incrementBy', amount)` にマッピングします
    ])、
}

要約する

  • mapMutationsとmapActiosは両方ともメソッドにマッピングされます
  • マッピング後、メソッドになる

複数のモジュール

補助機能を使用しない場合、

this.$store.commit('app/addCount')

ヘルパー関数を使用します。ヘルパー関数の最初のパラメータは、指定された名前空間へのパスです。

計算: {
  ...mapState('some/nested/module', {
    a: 状態 => 状態.a、
    b: 状態 => 状態.b
  })
},
メソッド: {
  ...mapActions('some/nested/module', [
    'foo', // -> this.foo()
    'bar' // -> this.bar()
  ])
}

または、createNamespacedHelpers関数を使用して、名前空間ベースのヘルパー関数を作成します。

'vuex' から { createNamespacedHelpers } をインポートします。

const { mapState, mapActions } = createNamespacedHelpers('some/nested/module') // パスが指定されている // 前と同じメソッドを使用する export default {
  計算: {
    // `some/nested/module` 内を参照...mapState({
      a: 状態 => 状態.a、
      b: 状態 => 状態.b
    })
  },
  メソッド: {
    // `some/nested/module` 内を検索...mapActions([
      'フー'、
      'バー'
    ])
  }
}

以上がvuexの補助機能の使い方の詳しい内容です。vuexの補助機能についてさらに詳しく知りたい方は、123WORDPRESS.COM内の他の関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • Vue 親コンポーネントが子コンポーネント関数の実装を呼び出す
  • Vue の proto ファイルの関数呼び出しのグラフィカルな説明
  • vuex の補助関数 mapGetters の基本的な使い方の詳細な説明
  • Vue3 の SetUp 関数のプロパティとコンテキスト パラメータの詳細な説明
  • vue2.x の徹底研究 - h 関数の説明

<<:  MySQL の結合インデックスと左端一致原則の詳細な説明

>>:  MySQL sql_mode の分析と設定の説明

推薦する

CSSラベル表示モードについて1つの記事で学ぶ

タグの種類(表示モード) HTML タグは、一般的にブロック タグとインライン タグの 2 種類に分...

IE8は優れたエクスペリエンスを提供します: アクティビティ

今日は IE8 ベータ 1 (以下、IE8 と略します) をチラ見しました。IE8 は素晴らしい体験...

ウェブサイトに天気予報を挿入する方法

天気予報をウェブサイトに挿入すると、次のような効果が得られます。次のコードを挿入する必要があります:...

MySQL の結合インデックスと左端一致原則の詳細な説明

序文これまでインターネットでMySQLジョイントインデックスの最左接頭辞マッチングに関する記事をたく...

MySQL infobrightのインストール手順

目次1. 次のように、「rpm -ivh インストール パッケージ」コマンドを使用して rpm パッ...

HTML テーブルタグチュートリアル (24): 行の水平方向の配置属性 ALIGN

水平方向では、行の配置を左、中央、右に設定できます。基本的な構文<TR ALIGN="...

vue3.0プロジェクトアーキテクチャを段階的に構築する方法を教えます

目次序文: 1. vue-cliでプロジェクトを作成する2. ルーターをインストールする3. ディレ...

Docker でローカルにイメージをインポート/保存/読み込み/削除する方法

1. Dockerはローカルイメージをインポートする場合によっては、イメージをローカルまたは別の友人...

JavaScript と CSS を最適化してウェブサイトのパフォーマンスを向上させる

<br /> 第 1 部と第 2 部では、Web サイトのパフォーマンス、ページ コンテ...

TypeScriptはvscodeを使用してコードのコンパイルプロセスを監視します

インストールtsコマンドをグローバルにインストールする npm install -g typescr...

Nginx で何ができるかの包括的な分析

序文この記事は、サードパーティのモジュールをロードせずにNginxで処理できることのみに焦点を当てて...

CentOS 7 ブートカーネルの切り替えとブートモードの切り替えの説明

Centos7 スイッチブートカーネル注: 必要に応じて、最初にyum update -yを実行して...

Chrome デベロッパー ツールの詳細な紹介 - タイムライン

1. 概要ユーザーは、アクセスする Web アプリケーションがインタラクティブでスムーズに実行される...

MYSQL クエリの効率を向上させる 10 の SQL ステートメント最適化テクニック

MySQL データベースの実行効率はプログラムの実行速度に大きな影響を与えます。データベースの効率的...

エレガントなJSコードの書き方

目次変数意味があり発音しやすい変数名を使用する同じ型の変数には同じ語彙を使用する検索可能な名前を使用...