マップ状態コンポーネントが複数の状態を取得する必要がある場合、これらすべての状態を計算プロパティとして宣言すると、多少の繰り返しと冗長性が生じます。この問題を解決するには、計算されたプロパティを生成する mapState ヘルパー関数を使用します。 mapState が使用されていない場合、オブジェクトの状態は通常、使用されているコンポーネントの computes プロパティから取得され、次のように使用されます。 //.... 計算: { カウント: 関数(){ this.$store.state.count を返します } } //.... mapState を使用すると、次のように簡略化できます。 import { mapState } from 'vuex' //mapStateオブジェクトを導入する export default { // ... 計算: mapState({ // 矢印関数はコードをより簡潔にすることができます count: state => state.count, }) } または import { mapState } from 'vuex' //mapStateオブジェクトを導入 export default { // ... 計算: mapState({ 'count'、//状態名 countAlias と一致する: 'count' //countAlias は参照コンポーネントで使用されるエイリアスです}) } マップゲッターmapGetters ヘルパー関数は、state と同様に、ストア内のゲッターをローカルの計算プロパティにマップするだけです。計算関数のコードは次のように簡略化されます。 'vuex' から { mapGetters } をインポートします。 エクスポートデフォルト{ // ... 計算: { // オブジェクトスプレッド演算子を使用して、計算されたオブジェクトにゲッターを混ぜます...mapGetters([ 'countDouble', 'CountDoubleAndDouble', //.. ]) } } MapGetters ではエイリアスも使用できます。 マップミューテーションmapMutations ヘルパー関数を使用して、コンポーネント内のメソッドを store.commit 呼び出しにマップします。簡略化されたコードは次のとおりです。 'vuex' から { mapMutations } をインポートします。 エクスポートデフォルト{ //.. メソッド: { ...mapMutations([ 'increment' // this.increment() を this.$store.commit('increment') にマップします ])、 ...mapMutations({ add: 'increment' // this.add() を this.$store.commit('increment') にマップします }) } } マップアクションmapActions ヘルパー関数を使用して、コンポーネント メソッドを store.dispatch 呼び出しにマップします。簡略化されたコードは次のとおりです。 'vuex' から { mapActions } をインポートします。 エクスポートデフォルト{ //.. メソッド: { ...マップアクション([ 'incrementN' // this.incrementN() を this.$store.dispatch('incrementN') にマップします ])、 ...マップアクション({ add: 'incrementN' // this.add() を this.$store.dispatch('incrementN') にマップします }) } } 例Vue 状態管理 (II) の例に従って、これは補助関数を使用して実行されます。補助関数は CountChange および ComputeShow コンポーネントで使用され、残りのコードを変更する必要はありません。 <テンプレート> <div align="center" style="background-color: ビスク;"> <p>以下は、computed を使用してストア内のステータスデータを直接取得し、ステータスデータが変更されたときに同期的に更新する方法です。</p> <h1>状態を受け取るには computed を使用します: {{ computedState }}</h1> <h1>getter を受け取るには computed を使用します: {{ computedGetters }}</h1> </div> </テンプレート> <スクリプト> import { mapState,mapGetters } from 'vuex' //mapState、mapGetters オブジェクトを導入 export default { 名前: 'ComputeShow', 計算:{ ...mapState({ computedState:'count' //エイリアス: computedState })、 ...mapGetters({ computedGetters:'getChangeValue' //エイリアス: computedGetters }) } } </スクリプト> <スタイル> </スタイル> マップを使用するときは、ストアのコンテンツから切り離されるようにエイリアスを追加することをお勧めします。 CountChangeでは、mapMutationsとmapActionsという2つの補助関数が使用されています。コードは次のとおりです。 <テンプレート> <div align="center"> <input type="number" v-model="paramValue" /> <button @click="addNum({res: parseInt(paramValue)})">+増加</button> <button @click="subNum">- 減少</button> </div> </テンプレート> <スクリプト> 輸入 { マップミューテーション、 マップアクション } from 'vuex' //mapMutations、mapActionsオブジェクトを導入 export default { 名前: 'CountChange', データ() { 戻る { パラメータ値: 1, } }, メソッド: { ...mapMutations({ subNum: 'sub' //別名subNumを追加 })、 ...マップアクション({ addNum: 'increment' // this.incrementN() を this.$store.dispatch('incrementN') にマップします }) } } </スクリプト> <スタイル> </スタイル> 同様に、ストア内のメソッドにエイリアスを付け、パラメータを渡す必要がある場合は、エイリアスを介してアクションまたはミューテーションに渡します。たとえば、「addNum({res: parseInt(paramValue)})」はオブジェクト {res: ''} を送信します。 まとめ補助関数自体には新しい意味はなく、主に State、Getter、Mutations、Actions を使用する際のコードを簡素化するために使用されます。 上記は、Vue フロントエンド開発における補助機能の状態管理の詳細な例です。Vue 補助機能の状態管理の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Docker イメージの作成、アップロード、プル、およびデプロイ操作 (Alibaba Cloud を使用)
まず、図をダウンロードしてください 1. まず、centos7に付属しているmariadbをアンイン...
問題/障害/シナリオ/要件Eve-ng の仮想マシン OVA のハードディスクは 38G しかないた...
Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...
目次1. 暗黙的な変換二重等号での変換ブール型変換「+」と「-」 2. 強制型変換' ...
次のコマンドを使用してコンテナを作成し、ローカルの /home/dock/Downloads ディレ...
目次1. 配列の分離割り当て1.1 配列分離割り当てとは何ですか? 1.2 配列分離割り当てに失敗し...
オープンソース ソフトウェアである Apache は、最も広く使用されている Web アプリケーショ...
Java 言語には多くのバージョンがあります。一般的に使用されている Java 8 に加えて、一部の...
カルーセルとは何ですか?カルーセル: モジュールまたはウィンドウで、コンピューターでマウスをクリック...
公式文書には次のように記されている。ルーターを挿入することで、どのコンポーネントでも this.$r...
MySQL トランザクション分離レベルを表示する mysql> '%isolation...
最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...
私たちの日常的な開発作業では、テキストのオーバーフロー、切り捨て、省略は、考慮する必要がある非常に一...
この記事では、参考までに、Baidu Mapsを使用して都市の位置特定を実現するVueの具体的なコー...
この記事は参考までにmysql 8.0.19 winx64.zipのインストールチュートリアルを記録...