Vue の this.$store.state.xx.xx に関する簡単な説明

Vue の this.$store.state.xx.xx に関する簡単な説明

これを Vue.$store.state.xx.xx

this.$store.state.xx.xxは実際にはVueで使用される状態管理ツールVuexです。

Vuex 公式サイト: https://vuex.vuejs.org/zh/

コンポーネントの共有状態を抽出し、グローバルシングルトンモードで管理するようなものです。このモードでは、コンポーネント ツリーが巨大な「ビュー」を形成し、ツリー内のどこにあるコンポーネントでも状態を取得したり動作をトリガーしたりできます。 (プロジェクト内のどこからでもいつでも動的にアクセスして変更できます。変更後、Vue はプロジェクト全体を更新します)

ストアからデータを取得する

ここに画像の説明を挿入

ここに画像の説明を挿入

すべてのコンポーネントがストア内のデータを使用できるように、ストアをvueルートファイルに登録します。

私のプロジェクトファイル構造

ここに画像の説明を挿入

main.jsファイルにストアを登録する

ここに画像の説明を挿入

ここに画像の説明を挿入

そしてコードが書かれる

ここに画像の説明を挿入

ログイン後、フロントエンドはuserIdをキャッシュし、userIdを検索します。

このポジションは公開ページで使用されます

ここに画像の説明を挿入

ここに画像の説明を挿入

概要: main.js はギルドのボスです。ボスに報酬を与えると、ボスからいくつかの小道具が渡されるので、これを使って小道具を使うことができます。

Vue プロジェクトはいつ store.state、$store.state、this.$store.s を使用しますか?

ストアと[this.]$store

つまり、ストアをルート コンポーネントに挿入すると、すべての .vue ファイルで this.$store.xxxx を直接使用できます。

Vue 公式サイト: Vue コンポーネントで this.$store.property にアクセスするには、作成したストアを Vue インスタンスに提供する必要があります。 Vuex は、ストア オプションとして、ルート コンポーネントからすべての子コンポーネントにストアを「挿入」するメカニズムを提供します。

//メイン.js
'./store' からストアをインポートします
新しいVue({
  el: '#app',
  store, //ルートコンポーネント注入ストア
})
//インデックス.vue
取得データ() {
 戻る {
  ユーザーID: this.$store.state.user.userId、
  ......
 }
}

js ファイルで store を使用する場合は、まず '@/store' から store をインポートし、次に store.xxx を使用する必要があります。これは、this.$store は js では印刷できないためです。

// src/test.js ファイルimport store from './store/';
コンソール.log(ストア)
console.log(this) // 未定義
console.log(this.$store) // エラーを報告します

this.$store と $store

$store は Vue インスタンス (つまり Vue.prototype) にマウントされ、コンポーネントは実際には Vue インスタンスです。コンポーネント内でこれを使用して、プロトタイプのプロパティにアクセスできます。

<template> にはコンポーネントインスタンスのコンテキストがあり、{{$store.state.XXX }} を通じて直接アクセスできます。これはスクリプト内の this.$store.state.XXX に相当します。

$store はデータで返される変数と考えてください。これを以下のスクリプトで使用する場合は追加する必要がありますが、上記のテンプレートでは必要ありません。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue コンポーネントで Vuex 状態を取得する Vuex メソッド
  • Vue で this.$store または $route を使用するときに発生するエラーの解決方法
  • vuex のデータ転送の 2 つの方法とその解決策について詳しく説明します。$store undefined
  • Vuex の状態オブジェクトを使用する 5 つの方法
  • コンポーネント内のvuexの状態を監視する方法の詳細な説明

<<:  MySQLカスタム関数の原理と使用法の分析

>>:  CentOS 7 での Nginx ログタイミング分割の実装手順の詳細説明

ブログ    

推薦する

XHTMLタグには終了タグがある

<br />オリジナルリンク: http://www.dudo.org/article....

XHTML 入門チュートリアル: フレーム タグの使用

<br />フレーム構造により、ブラウザの 1 ページに複数の Web ページを同時に表...

Vue ベースの要素ボタン権限実装ソリューション

背景要件: ERP システムに「ボタン権限制御」機能を追加する必要があり、権限の制御粒度をボタン レ...

ウェブサイトデザインにおいて非常に重要な概念であるdiv+floatの分析

ウェブサイトの構築では、HTML と CSS に関するさまざまな問題に常に遭遇します。ウェブサイト ...

Linux ベースの MySQL マスター スレーブ構成の全プロセスを記録する

mysql マスタースレーブ構成1. 準備ホスト: 192.168.244.128スレーブ: 192...

Mysql データベースのマスタースレーブ同期構成

目次Mysql マスタースレーブ同期構成1. 2つのmysqlをインストールする2. MySQL設定...

vue-cli 設定では Vuex の完全なプロセスレコードを使用します

目次序文インストールと使用方法モジュラー管理Vuex の状態永続性要約する序文Vue 開発では、ユー...

MySQL 起動時に「サーバーは PID ファイルを更新せずに終了しました」というエラーが報告される理由の詳細な分析

多くの人が MySQL の起動時にこのエラーに遭遇しています。まず、このエラーの前提は、サービス ス...

Vue のライフサイクルとフック関数

目次1.ライフサイクルとは何か2. Vueのライフサイクル3. ライフサイクルフック関数1.ライフサ...

Vuex でゲッターとアクションを使用するための追加手順

予備的注釈1.Vue2.xとVue3.xの違い: Vue 3.x にはヘルパー関数はありません。 V...

sed コマンドを使用してファイルの特定の行を効率的に削除する方法

序文通常、ファイル内の特定の行を削除したい場合は、まずファイルを開き、削除する内容を見つけて、これら...

JSはリクエストディスパッチャーを実装する

目次抽象化と再利用シリアルセグメントシリアル、セグメントパラレル要約するはじめに: JS は当然並列...

MySQL ロックブロッキングの詳細な分析

日常のメンテナンスでは、スレッドがブロックされることが多く、データベースの応答が非常に遅くなります。...

divの背景を透明に設定する方法の例

div の背景を透明にする一般的な方法は 2 つあります。 1. 不透明度属性を 0 ~ 1 の値に...

順序再構築に関する簡単な説明: MySQL シャーディング

目次1. 目的2. 環境整備1. 基本情報2. データベース環境の準備3. データベースを構築し、サ...