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 ログタイミング分割の実装手順の詳細説明

推薦する

SpringBoot でマイクロサービスを構築するために Docker を使用した実際の記録を分析する

それは何ですか? Spring Boot は、Spring オープンソース組織のサブプロジェクトであ...

JavaScript は 9 グリッドのクリックによる色の変更効果を実装します

この記事では、9グリッドクリックの色変更効果を実現するためのJavaScriptの具体的なコードを参...

MySQL 5.7.21 履歴データディレクトリからデータを復元するチュートリアルの解凍バージョン

状況の説明: データベースが異常に起動およびシャットダウンしたため、サービスを再度起動したときに「起...

Docker 可視化グラフィックツール portainer の詳細な説明

目次1. ポーテナーの紹介2. Portainer アーキテクチャの概要3. Portainerのイ...

mysql-8.0.15-winx64 解凍バージョンのインストールチュートリアルと終了する 3 つの方法

1.公式サイトからダウンロードして解凍する参考: 2. 環境変数を設定するMYSQL_HOMEをMy...

Navicat for MySQL 11 登録コード\アクティベーションコードの概要

おすすめの読み物: Navicat12.1シリーズのクラッキングとアクティベーションのチュートリアル...

MySQLサブクエリでorder byが効かない問題の解決方法

偶然にも、SQL ステートメントを異なる MySQL インスタンスで実行すると、異なる結果が生成され...

MySQL 変数の原理と応用例

MySQL ドキュメントでは、MySQL 変数はシステム変数とユーザー変数の 2 つのカテゴリに分類...

CSS変換ページめくりアニメーションレコードの実装

ページめくりの問題のシナリオBとCは同じページ(表と裏)にありますページをめくって A をカバーした...

Vueはコンピュータカメラを呼び出して写真機能を実現します

この記事の例では、コンピュータカメラを呼び出して写真機能を実現するためのvueの具体的なコードを参考...

ウェブ上の模倣と盗作に関する議論

2005年に業界に入ってから数か月後、労働者の日休みの期間中、1か月以上毎日12時まで残業をしました...

モバイルウェブサイトの開発に関するいくつかの結論

ウェブサイトのモバイル版には、少なくともいくつかの基本機能が必要です。 1. ページの適用性の問題:...

MySQL トランザクション分離はどのように実現されますか?

目次同時シナリオ書き込む読む読む読み取り-書き込みと書き込み-読み取りMySQL のロック行レベルロ...

検索テキストボックスがフォーカスを外れたときにテキストの位置がジャンプする問題の解決方法

検索テキストボックスにテキストを設定すると、フォーカスを外すと位置がジャンプしますコードをコピーコー...

Vue スキャフォールディング学習プロジェクト作成方法

1. 足場とは何ですか? 1. Vue CLI Vue CLI は、Vue.js をベースにした迅速...