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 を完全にアンインストールする方法

推薦する

ウェブページのグリッドデザインを考える

<br />元のアドレス: http://andymao.com/andy/post/8...

Linux システムのパフォーマンスを分析するための top コマンドの詳細な説明

Linux topコマンドの紹介top コマンドは、Linux でよく使用されるパフォーマンス分析ツ...

MySQL ビューの原理と使用法の詳細な分析

序文: MySQL では、ビューはおそらく最も一般的に使用されるデータベース オブジェクトの 1 つ...

Docker クロスホストネットワーク (オーバーレイ) の実装

1. Dockerのホスト間通信Docker クロスホスト ネットワーク ソリューションには以下が含...

タブ効果を実現する js 開発プラグイン

この記事の例では、タブ効果を実現するためのjsプラグインの具体的なコードを参考までに共有しています。...

Vue+echarts でプログレスバーのヒストグラムを実現

この記事では、プログレスバーヒストグラムを実現するためのvue+echartsの具体的なコードを参考...

Zabbix で複数の JVM プロセスを監視する方法

1. シナリオの説明:私たちの環境ではマイクロサービスを使用しています。各プログラムには個別のプロセ...

理論の普及——ユーザーエクスペリエンス

1. 概念分析 1: UE ユーザー エクスペリエンス <br />英語ではユーザー エ...

VUE ユニアプリの条件付きコーディングとページレイアウトに関する簡単な説明

目次条件付きコンパイルページレイアウト要約する条件付きコンパイル条件付きコンパイルでは、特別なコメン...

HTMLページの読み込み速度を上げる方法

(1)HTTPリクエストを減らす。 (リソース ファイルをマージし、イメージ スプライトを使用します...

MySQLインデックスの詳細な分析

序文インデックスの選択はオプティマイザ段階の作業であることはわかっていますが、オプティマイザは万能で...

CentOS7 に MySQL をオフラインでインストールする詳細なチュートリアル

1. 元のmariadbを削除します。削除しないとmysqlをインストールできません。 mariad...

IDEA を使用して Tomcat を設定し、JSP ファイルを作成する方法

idea を使用して JSP ファイルを書き込む前に、jdk 環境 (ここでは説明しません) と対応...

HTMLタグの書き方でよくある間違い

注意を払う必要があります。HTML Police がコードを調べて、意味のないタグをすべて見つけ出す...

MySQL のデータベース パフォーマンスに影響を与える要因の説明

データベースのパフォーマンスに関する話面接では、「データベースにどのくらい精通していますか?」など、...