マップ状態コンポーネントが複数の状態を取得する必要がある場合、これらすべての状態を計算プロパティとして宣言すると、多少の繰り返しと冗長性が生じます。この問題を解決するには、計算されたプロパティを生成する 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. 効果2. メインコード1. 効果機能: インターフェイスから取得したデータを使用してオプシ...
データの昇順、降順ソート1. フィールド名による単一フィールドのソート順機能:どのフィールドを基準に...
目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...
目次単一条件単一データフィルタリング単一条件複数データフィルタリング複数の条件付きデータフィルタリン...
1. 今日、ページを作っているときに、矢印を中央に配置する効果に遭遇しました。クリック領域を大きくし...
1. 問題の出現フラット リストを作成しました。リストの一部には、マウスをホバーすると表示されるポッ...
この記事では、小数点付きの星評価を実装するためのVueの具体的なコードを参考までに共有します。具体的...
ネットワーク セキュリティは非常に重要なトピックであり、サーバーはネットワーク セキュリティにおける...
目次序文zxライブラリ$`コマンド` CD()フェッチ()質問()寝る()スローしない()チョークフ...
この記事では、MySQL 5.7.24のインストールと設定のチュートリアルを参考までに紹介します。具...
Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...
Nextcloud は、オープンソースで無料のプライベート クラウド ストレージ ネットワーク ディ...
目次1. フックとは何ですか? 2. フックはなぜ現れるのでしょうか? 3. よく使われるフックは何...
Docker 公開方法は、DevOps (送信、コンパイル、パッケージ化、リリースなどの一連のイベ...
目次前の単語同期と非同期前菜プレートを追加マクロタスク マイクロタスク約束しましょうタイマーを追加す...