フロントエンド Vue 入門-day07-Vuex 入門

(創作は簡単ではありません。ありがとうございます。皆さんのサポートが私が前進するための最大の動機です。読んで役に立った場合は、足跡を残してください)

目次

カスタム作成アイテム

vuexの概要

vuex(マルチコンポーネントデータ共有)環境を構築する 

空の倉庫を作成する

状態 状態

1. データを提供します。

2. 使用状況データ:

突然変異 

ヘルパー関数 - mapMutation

行動

ヘルパー関数 - mapActions 

ゲッター 

モジュール module (高度な構文)

アクセス構文状態

アクセス構文ゲッター

アクセス構文の変更

アクセス構文-アクション


カスタム作成アイテム

目標: VueCli に基づいてカスタム プロジェクト シェルフを作成する

プロジェクトの作成を開始する

 

カスタム作成プロジェクトを選択します 

 

ファイル内で構成する必要がある機能を選択します 

 

バージョンを選択 

履歴モードを選択するかどうか

CSSプリプロセッサの選択 

 

ESLint 仕様を選択します 

いつチェックを開始するかを選択してください

 設定ファイルの保存場所を選択します

保存するかどうか

vuexの概要

1. それは何ですか:
Vuexは Vue の 状態管理ツールであり 、状態はデータです。
Vernacular: vuex は、次のような vue 共通データ (複数のコンポーネントによって共有されるデータ) の管理に 役立つプラグインです 。 ショッピング カート データ 個人情報データ
2. シナリオ:
① 特定の状態が 多くのコンポーネントで使用されている (個人情報)
② 複数のコンポーネントが 共同で データを保持する(ショッピングカート)
3. 利点:
① データを共同で保持し、 データを一元管理する
②対応的な 変化
③ 簡単な操作(vuexはいくつかの補助機能を提供します)

vuex(マルチコンポーネントデータ共有)環境を構築する 

この効果は 3 つのコンポーネントで構成され、1 つのデータを共有します。
どのコンポーネントでもデータを変更できる
3 つのコンポーネントのデータは同期されます

空の倉庫を作成する

// 这里存放的就是vuex相关的核心代码
import Vue from 'vue'
import Vuex from 'vuex'

// 插件安装
Vue.use(Vuex)

// 创建仓库
const store = new Vuex.Store()

// 导出给main.js
export default store

状態 状態

1. データを提供します。

State は唯一のパブリック データ ソースを提供し、すべての共有データは Store の State に保存される必要があります。
状態オブジェクトに、共有したいデータを追加できます

2. 使用状況データ:

①店舗から直接アクセス
② 補助機能による
mapState は、ストア内のデータを コンポーネントの計算されたプロパティに 自動的にマッピングするのに役立つ補助関数です。

突然変異 

目標: 状態データを変更するための突然変異の操作プロセスをマスターします。(状態データの変更は突然変異を通じてのみ行うことができます)

1. 状態を変更するメソッドを格納するミューテーション オブジェクトを定義します。

 2. コンポーネント内でミューテーションを送信して呼び出す

コミットミューテーションはパラメータを渡すことができる` this.$store.commit('xxx',parameter) `です 

1. ミューテーション機能の提供(パラメーター付き - ペイロードペイロードの送信)

2. ページ上でミューテーションを送信して呼び出します。

 ヒント: 送信パラメーターは 1 つだけです。複数のパラメーターがある場合は、それらをオブジェクトにラップして渡します。

ヘルパー関数 - mapMutation

目標: 補助関数mapMutation、マッピング方法をマスターする
mapMutations は、mapState と非常によく似ており、 ミューテーションにあるメソッドを 抽出し、それらを コンポーネント メソッド にマップします。

行動

目標: アクションの基本構文を明確にし、非同期操作を処理します。
説明: 突然変異は同期的である必要があります (データ変更の監視、デバッグの記録が容易です)
1. アクションメソッドを提供する

2. ページ内で通話を発信する 

ヘルパー関数 - mapActions 

mapActions は、アクション内にあるメソッドを抽出し、コンポーネント メソッドにマップします。

ゲッター 

説明: 状態に加えて、状態から いくつかの状態を導出する必要がある場合があります 。これらの状態は状態に依存し、この時点ではゲッターが使用されます。
目標: コアコンセプトのゲッターの基本構文をマスターする (計算されたプロパティと同様)
例: リストは状態で定義されており、これは 1 ~ 10 の配列であり、コンポーネントでは 5 より大きいすべてのデータを表示する必要があります。

1. ゲッターを定義する
2. アクセスゲッター
①ストア経由でゲッターにアクセス
②補助関数mapGetterによるマッピング

モジュール module (高度な構文)

vuex は 単一の状態ツリーを使用するため 、アプリケーションのすべての状態が 比較的大きなオブジェクトに集中します
アプリケーションが非常に複雑になると、ストア オブジェクトが非常に肥大化する可能性があります。(Vuex はプロジェクトが大きくなるにつれて保守が難しくなります)

モジュール分割:

ユーザーモジュール:store/modules/user.js

アクセス構文状態

目標: モジュール内の状態のアクセス構文をマスターする
モジュールに分割されていますが、サブモジュールの状態は依然としてルートレベルの状態にリンクされており、属性名はモジュール名です。
モジュールからのデータを使用します。
①モジュール名から $store.state.modulename.xxxに直接アクセスします。
②mapStateによるマッピング
        デフォルトのルートレベルマッピング mapState([ 'xxx' ])
        サブモジュール マッピング mapState('モジュール名', ['xxx']) - 名前空間を開く必要があります

アクセス構文 -ゲッター

目標: モジュール内のゲッターのアクセス構文をマスターする
モジュール内のゲッターからのデータを使用します。
① $store.getters['モジュール名/xxx'] にモジュール名で直接アクセス
②mapGetterによるマッピング
        デフォルトのルートレベルのマッピング mapGetters([ 'xxx' ])
        サブモジュール マッピング mapGetters('モジュール名', ['xxx']) - 名前空間を開く必要があります

 

アクセス構文 -突然変異

目標: モジュール内のミューテーションの呼び出し構文をマスターする
注: デフォルト モジュールのミューテーションとアクションはグローバルにマウントされるため、 サブモジュールにマウントする前に 名前空間を有効にする必要があります。
サブモジュールでミューテーションを呼び出します。
①store経由で$store.commitを直接呼び出します ('モジュール名/xxx'、追加パラメータ)
②mapMutationによるマッピング
        デフォルトのルートレベルのマッピング mapMutations([ 'xxx' ])
        サブモジュール マッピング mapMutations('モジュール名', ['xxx']) - 名前空間を開く必要があります

アクセス構文 -アクション

目標: モジュール内のアクションの呼び出し構文をマスターする (同様に、突然変異への直接の類似で十分です)
注: デフォルト モジュールのミューテーションとアクションはグローバルにマウントされるため、 サブモジュールにマウントする前に 名前空間を有効にする必要があります。
サブモジュールでアクションを呼び出します。
①ストア経由で $store.dispatch('モジュール名/xxx ', 追加パラメータ) を直接呼び出します。
②mapActionによるマッピング
        デフォルトのルートレベルのマッピング mapActions([ 'xxx' ])
        サブモジュール マッピング mapActions('モジュール名', ['xxx']) - 名前空間を開く必要があります

おすすめ

転載: blog.csdn.net/weixin_73295475/article/details/132054994