vuex の補助関数 mapGetters の基本的な使い方の詳細な説明

vuex の補助関数 mapGetters の基本的な使い方の詳細な説明

mapGettersヘルパー関数

mapGettersヘルパー関数は、ストア内のゲッターをローカルの計算プロパティにマップするだけです。

1. コンポーネントまたはインターフェース内の vuex の getter を呼び出すために mapGetter を使用しないでください。

1.1 マッピングのルートストアでゲッターを呼び出す

<!-- test.vue -->
<テンプレート>
  <div class="vuexResponse">
    <div @click="changeVal">クリック</div>
    <div>"stateHello: "{{stateHello}}</div>
    <div>"gettersHello: "{{gettersHello}}</div>
  </div>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  時計:
    gettersHello(newVal, oldVal) {
      console.log("gettersHello newVal", newVal);
      console.log("gettersHello oldVal", oldVal);
    }
  },
  計算: {
    ステートハロー() {
      これを返します。$store.state.stateHello
    },
    ゲッターHello() {
      これを返します。$store.getters.gettersHello
    }
  },
  メソッド: {
    変更値() {
      this.$store.commit("mutationsHello", 2)
    }
  }
}
</スクリプト>
/**
 * ストア
 */
'vue' から Vue をインポートします
'vuex' から Vuex をインポートします

Vue.use(Vuex)
デフォルトの新しいVuex.Storeをエクスポートします({
  州: {
    状態こんにちは: 1
  },
  ゲッター: {
    gettersHello: (状態) => {
      state.stateHello * 2 を返す
    }
  },
  突然変異:
    変異Hello(状態、値) {
      console.log("val", val); // 2
      state.stateHello += val
    }
  },
})

プロセス: クリックして、test.vue インターフェースで changeVal() を呼び出します。changeVal メソッドは、パラメータ val を commite に渡し、store.js で mutationsHello() メソッドを呼び出します。mutationsHello メソッドは、state の stateHello の値を変更します。stateHello の値は、getters の gettersHello で監視されます。stateHello の値の変更により、gettersHello がトリガーされます。計算された test.vue インターフェースでは、store.getters.gettersHello が計算され、gettersHello が store.gettes.gettersHello の値にマップされます。GettersHello は、テンプレートを通じて dom にレンダリングされます。同時に、gettersHello の変更により、watch で gettersHello がトリガーされ、store.getters.gettersHello のデータの変更が監視されることもあります。

1.2 マッピングモジュールのモジュールストアでゲッターを呼び出す

<!-- moduleTest.vue -->
<テンプレート>
  <div class="vuexResponse">
    <div @click="changeVal">クリック</div>
    <div>stateHello: {{stateHello}}</div>
    <div>gettersHello: {{gettersHello}}</div>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  時計:
    gettersHello(newVal, oldVal) {
      console.log("gettersHello newVal", newVal);
      console.log("gettersHello oldVal", oldVal);
    }
  },
  計算: {
    ステートハロー() {
      これを返します。$store.state.vuexTest.stateHello
    },
    ゲッターHello() {
      this.$store.getters['vuexTest/gettersHello'] を返します。
    }
  },
  メソッド: {
    変更値() {
      this.$store.commit("vuexTest/mutationsHello", 2)
    }
  }
}
</スクリプト>
/**
 * モジュール vuexTest.js
 */
エクスポートデフォルト{
    名前空間: true、
    州: {
        状態Hello: 1,
    },
    ゲッター: {
        gettersHello: (状態、ゲッター、ルート状態、ルートゲッター) => {
            console.log("状態", 状態);
            console.log("ゲッター", ゲッター);
            コンソールにログ出力します。
            コンソールにログ出力します。
            state.stateHello * 2 を返す
        }
    },
    突然変異:
        変異Hello(状態、値) {
            コンソールログ("1111");
            console.log("val", val);
            state.stateHello += val
        }
    },
    アクション: {

    }
}

computed のマッピング モジュールでゲッターを計算する方法は、モジュールの状態のデータを取得する方法とは異なることに注意してください。

this.$store.getters['vuexTest/gettersHello']

2. mapGetterを使用して、コンポーネントまたはインターフェース内のvuexのゲッターを呼び出す

2.1 マッピングのルートストアでゲッターを呼び出す

/**
 * ストア
 */
 'vue' から Vue をインポートします
 'vuex' から Vuex をインポートします
 
 Vue.use(Vuex)
 デフォルトの新しいVuex.Storeをエクスポートします({
   州: {
     状態こんにちは: 1
   },
   ゲッター: {
     gettersHello: (状態) => {
       state.stateHello * 2 を返す
     }
   },
   突然変異:
     変異Hello(状態、値) {
       state.stateHello += val
     }
   },
 })
<!-- テスト.vue -->
<テンプレート>
  <div class="vuexResponse">
    <div @click="changeVal">クリック</div>
    <div>stateHello: {{stateHello}}</div>
    <div>gettersHello: {{gettersHello}}</div>
    <div>gettersHelloOther {{gettersHelloOther}}</div>
  </div>
</テンプレート>

<スクリプト>
「vuex」から mapGetters をインポートします。
エクスポートデフォルト{
  名前: "vuexReponse",
  コンポーネント:

  },
  データ() {
    戻る {

    }
  },
  時計:
    gettersHello(newVal, oldVal) {
      console.log("gettersHello newVal", newVal);
      console.log("gettersHello oldVal", oldVal);
    }
  },
  計算: {
    ステートハロー() {
      これを返します。$store.state.stateHello
    },
    ...mapGetters(["gettersHello"]), // 配列形式...mapGetters({ // オブジェクト形式 gettersHello: "gettersHello"
    })、
    ...mapGetters({
      gettersHelloOther: "gettersHello" // オブジェクト形式でマッピングを変更します }),
  },
  メソッド: {
    変更値() {
      this.$store.commit("mutationsHello", 2)
    }
  }
}
</スクリプト>

2.2 マッピングのルートストアでゲッターを呼び出す

/**
 * vuexTest.js
 */
 エクスポートデフォルト{
    名前空間: true、
    州: {
        状態Hello: 1,
    },
    ゲッター: {
        gettersHello: (状態、ゲッター、ルート状態、ルートゲッター) => {
            console.log("状態", 状態);
            console.log("ゲッター", ゲッター);
            コンソールにログ出力します。
            コンソールにログ出力します。
            state.stateHello * 2 を返す
        }
    },
    突然変異:
        変異Hello(状態、値) {
            コンソールログ("1111");
            console.log("val", val);
            state.stateHello += val
        }
    },
    アクション: {

    }
}
<!-- モジュール test.vue -->
<テンプレート>
  <div class="vuexResponse">
    <div @click="changeVal">クリック</div>
    <div>stateHello: {{stateHello}}</div>
    <div>gettersHello: {{gettersHello}}</div>
    <div>gettersHelloOther {{gettersHelloOther}}</div>
  </div>
</テンプレート>

<スクリプト>
「vuex」から mapGetters をインポートします。
エクスポートデフォルト{
  名前: "vuexReponse",
  時計:
    gettersHello(newVal, oldVal) {
      console.log("gettersHello newVal", newVal);
      console.log("gettersHello oldVal", oldVal);
    }
  },
  計算: {
    ステートハロー() {
      これを返します。$store.state.vuexTest.stateHello
    },
    ...mapGetters(["vuexTest/gettersHello"]), // 配列形式...mapGetters("vuexTest", { // オブジェクト形式 gettersHello: "gettersHello"
    })、
    ...mapGetters("vuexTest", {
      gettersHelloOther: "gettersHello" // オブジェクト形式でマッピングを変更します }),
  },
  メソッド: {
    変更値() {
      this.$store.commit("vuexTest/mutationsHello", 2)
    }
  }
}
</スクリプト>
これら 3 つの形式...mapGetters(["vuexTest/gettersHello"]), // 配列形式...mapGetters("vuexTest", { // オブジェクト形式 gettersHello: "gettersHello"
    })、
    ...mapGetters("vuexTest", {
      gettersHelloOther: "gettersHello" // オブジェクト形式でマッピングを変更します }),

これで、vuex の補助関数 mapGetters の基本的な使い方についての記事は終了です。vuex mapGetters の使い方に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vuex でのゲッター計算とフィルタリング操作の詳細な説明
  • Vuexのゲッター属性の具体的な使い方について話す
  • vuex での mapState、mapGetters、mapActions、mapMutations の使用
  • vuex での Getter の使用法の詳細な説明
  • Vuex でゲッターとアクションを使用するための追加手順

<<:  ユニークインデックスの S ロックと X ロックによる MySQL デッドロック ルーチンの理解

>>:  Nginx でバージョン番号を隠したり偽造したりする方法

推薦する

Ubuntu 20.04 をインストールした後に行うべきこと (初心者向けガイド)

Ubuntu 20.04 がリリースされ、多くの新機能が導入されましたが、慣れていない機能も多くあ...

HTML テーブルタグチュートリアル (26): セルタグ

<TD> タグの属性は、テーブル内のセルのプロパティを設定するために使用されます。表 &...

Windows 7 64 ビットに最新バージョンの MySQL サーバーをインストールする方法のグラフィック チュートリアル

最近、MySQL データベースを勉強していて、設定ファイルを頻繁に変更したため、MySQL データベ...

ウェブページのカスタム選択ボックス選択

選択ドロップダウン リスト フォームは誰もがよく知っているかもしれませんが、デフォルトのドロップダウ...

CSS ボックスを中央揃えするためのよく使われるいくつかの方法 (要約)

最初のもの: CSSの位置プロパティの使用 <スタイル タイプ="text/css&...

MySQL CHARとVARCHARの選択方法

目次VARCHAR 型と CHAR 型結論: VARCHAR 型と CHAR 型VARCHAR と ...

Ubuntu 16.04 に nvidia ドライバー + CUDA + cuDNN をインストールする詳細なチュートリアル

準備1. GPUがCUDAをサポートしているかどうかを確認するlspci | grep -i nvi...

MySQLデータ移行方法とツールの分析

この記事は主にMySQLデータ移行方法とツールの分析を紹介します。サンプルコードを通じて詳細に紹介さ...

WeChatアプレットリクエストの前処理方法の詳細な説明

質問一部のページでは、onload でデータを要求してからビューをレンダリングするため、ミニプログラ...

CSS で要素を垂直方向に中央揃えする 7 つの方法

【1】中央の要素の幅と高さを知る絶対値 + 負のマージンコードの実装 .wrapBox5{ 幅: 3...

Vueはグラフィック検証コードを実装する

この記事の例では、グラフィック検証コードを実装するためのVueの具体的なコードを参考までに共有してい...

Google の新しい UI から学べること (画像とテキスト)

2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...

固定ボトムコンポーネントを実装した Vue の例

目次【効果】 【実施方法】 【効果】 【実施方法】 <テンプレート> <div i...

CSS 使用のヒントのまとめ

最近、ブログのアップグレードを始めました。テンプレートを変更する過程で、CSS スタイルシートを書き...

フォームにファイルをアップロードした後にアクションを保存するよう促す理由と解決策

jsonデータはhtml形式で返される必要がありますつまり、 response.setContent...