Vue3.0 で Vuex 状態管理を開始する方法をすぐに習得します

Vue3.0 で Vuex 状態管理を開始する方法をすぐに習得します

Vuex は、Vue.js アプリケーション専用に開発された状態管理パターンです。集中型ストレージを使用してアプリケーションのすべてのコンポーネントのステータスを管理し、対応するルールを使用して、ステータスが予測可能な方法で変更されるようにします。 Vuex は Vue の公式デバッグ ツール devtools にも統合されており、ゼロ構成のタイムトラベル デバッグ、状態スナップショットのインポートとエクスポートなどの高度なデバッグ機能を提供します。
大規模なシングルページ アプリケーションを開発する予定がない場合は、Vuex の使用は面倒で冗長になる可能性があります。確かに、アプリが十分にシンプルな場合は、Vuex を使用しない方がよいでしょう。必要なのはシンプルなストアパターンだけです。ただし、中規模から大規模のシングルページ アプリケーションを構築する必要がある場合は、コンポーネント外部の状態をより適切に管理する方法を検討する可能性が高く、Vuex が自然な選択になります。

1. 状態

Vuex の状態ストレージはレスポンシブなので、ストア インスタンスから状態を読み取る最も簡単な方法は、計算プロパティで状態を返すことです。

'vue' から { computed } をインポートします
'vuex' から {useStore} をインポートします。
エクスポートデフォルト{
  設定 () {
    定数ストア = useStore()
    戻る {
      カウント: 計算された(() => store.state.count)
    }
  }
}

ゲッター

Vuex を使用すると、ストア内に「ゲッター」を定義できます (これはストアの計算されたプロパティと考えることができます)。計算プロパティと同様に、ゲッターの戻り値は依存関係に基づいてキャッシュされ、依存関係の値が変更された場合にのみ再計算されます。

'vue' から { computed } をインポートします
'vuex' から {useStore} をインポートします。
エクスポートデフォルト{
  設定 () {
    定数ストア = useStore()
    戻る {
      double: 計算された(() => store.getters.double)
    }
  }
}

突然変異

Vuex ストア内の状態を変更する唯一の方法は、ミューテーションを送信することです。 Vuex のミューテーションはイベントと非常によく似ています。各ミューテーションには、文字列イベント タイプ (type) とコールバック関数 (handler) があります。このコールバック関数は、実際に状態の変更を行う場所であり、最初の引数として状態を受け取ります。

const ストア = createStore({
  州: {
    カウント: 1
  },
  突然変異:
    増分(状態) {
      状態.count++
    }
  }
})

ミューテーション ハンドラーを直接呼び出すことはできません。このオプションは、イベント登録に似ています。「増分型のミューテーションがトリガーされたら、この関数を呼び出します。」ミューテーション ハンドラーを呼び出すには、対応する型で store.commit メソッドを呼び出す必要があります。

store.commit('増分')

アクション

アクションは、次の点を除いて、ミューテーションに似ています。
アクションは、状態を直接変更するのではなく、突然変異を送信します。
アクションには任意の非同期操作を含めることができます。

定数ストア = 新しい Vuex.Store({
  州: {
    カウント: 0
  },
  突然変異:
    増分(状態) {
      状態.count++
    }
  },
  アクション: {
    インクリメント(コンテキスト) {
      context.commit('増分')
    }
  }
})

アクションは store.dispatch メソッドによってトリガーされます。

store.dispatch('増分')

モジュール

単一の状態ツリーを使用することで、すべてのアプリケーション状態が 1 つの大きなオブジェクトに集中化されます。アプリケーションが非常に複雑になると、ストア オブジェクトが非常に肥大化する可能性があります。
上記の問題を解決するために、Vuex ではストアをモジュールに分割することができます。各モジュールには独自の状態、ミューテーション、アクション、ゲッター、さらにはネストされたサブモジュールがあり、上から下まで同じように分割されています。

定数モジュールA = {
  状態: () => ({ ... }),
  変異: { ... },
  アクション: { ... },
  ゲッター: { ... }
}
定数モジュールB = {
  状態: () => ({ ... }),
  変異: { ... },
  アクション: { ... }
}
const ストア = createStore({
  モジュール:
    a: モジュールA、
    b: モジュールB
  }
})

6. vuex の永続状態

ページを更新してプロジェクトをリロードすると、vuex がリセットされ、すべての状態が初期状態に戻ります。vuex-persistedstate を使用すると、この状況を回避できます。

1. インストール

npm インストール --save vuex-persistedstate

2. 使用

「vuex」からVuexをインポートします。
「vuex-persistedstate」からcreatePersistedStateをインポートします。
定数ストア = 新しい Vuex.Store({
  プラグイン: [createPersistedState()],
});

上記は、Vue3.0 で Vuex 状態管理をすぐに開始する方法の詳細です。Vuex 状態管理の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue3 で状態管理を実装するために provide を使用する方法
  • Vue フロントエンド開発補助機能状態管理詳細例
  • vuexプロジェクトにおけるログインステータス管理の実践プロセス
  • Vueのシンプルな状態管理ストアモードを理解する方法
  • vuex での mapState の考え方の応用
  • Vueプロジェクトでvuexを使用する方法
  • vuex名前空間の使用
  • Vue の状態管理: Vuex の代わりに Pinia を使用する

<<:  CentOS7 で yum を使用して PostgreSQL と PostGIS をインストールする方法

>>:  CentOS で MySQL を完全にアンインストールする方法

推薦する

CSSの高さの崩壊問題についての簡単な説明

パフォーマンス例えば: HTML: <div class="first"&...

Nginx+Tomcat 負荷分散クラスタの実装例

目次導入1. 事例の概要2. 環境の展開3. Nginxホストのインストール4. Tomcatのイン...

Ubuntuはカーネルモジュールをコンパイルし、その内容はシステムログに反映されます。

目次1.Linuxログインインターフェース2. コードを書く3. Makefileを書く4. コンパ...

dockerでビルドしたnacos1.3.0の実装

1. nacosデータベースを再開します。データベース名nacos_configユーザー名とパスワー...

CSSを使用して円形の波効果を実現する

モバイル デバイスでは、金額を表示するために円形の波グラフィックがよく使用されます。最初は、この効果...

MySQL の厄介な Aborted 警告をケーススタディで分析する

この記事では主に、MySQL の Aborted アラームに関する関連コンテンツを紹介し、参考と学習...

vscode で console.log を書く 2 つの簡単な方法の詳細な説明

(I) 方法 1: 事前にスクリプト タグ内に直接定義します。この HTML ファイルにのみ適用され...

LinuxでPythonの組み込みバージョンを削除する手順の詳細な説明

大きな落とし穴、Linuxシステムに付属するPythonのバージョンを簡単に削除しないでください1....

MySQL Innodbインデックスの原理の詳細な説明

導入振り返ってみると、4年前、私がMySQLのインデックスについて学んでいたとき、先生はインデックス...

blockquote タグの使用に関する注意

<br />セマンティクス化は一言で説明することはできないし、まだ公式かつ厳密な定義もあ...

Mysql SQL ステートメントのコメント

MySQL SQL ステートメントにコメントを追加できます。MySQL SQL ステートメントのコメ...

WeChat アプレット計算機の例

WeChatアプレット計算機の例、参考までに、具体的な内容は次のとおりです。インデックス.wxml ...

Linux環境でのDockerインストールチュートリアル

1. 設置環境Dockerは次のCentOSバージョンをサポートしていますCentOS 6.5 (6...

Centos8 で NIS ドメイン サービスをセットアップおよび構成するための詳細な手順

目次NIS の紹介ネットワーク環境: 1. 環境の準備(両方のノードが必要) 2.nisマスターサー...

面接でよく聞かれる Vue 修飾子 13 個

目次1. 怠惰な2.トリム3.番号4.停止5. キャプチャ6.自分7.一度8.予防する9.ネイティブ...