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

推薦する

デザイナーの「職業病」について

デザイナーは世界で最も繊細で感情的な人々だと私はいつも感じています。私がこう言うときに優越感を感じる...

MySQL クエリのパケットが大きすぎる問題と解決策

問題の説明:エラーメッセージ:原因: com.mysql.jdbc.PacketTooBigExce...

MySQL 入門 - 概念

1. それは何ですか? MySQL は最も人気のあるリレーショナル データベース管理システムです。W...

使用したコマンドを表示するLinuxコマンドメソッドの概要

システムでは多くのコマンドが使用されていますが、使用したコマンドをどのように確認すればよいでしょうか...

Linux の crontab タスク スケジューリングの簡単な分析

1. スケジュールタスクを作成する命令crontab -eは現在のユーザーの編集インターフェースに入...

Dockerを使用してGitlabを素早くデプロイする方法

1. GitLabイメージをダウンロードする docker pull gitlab/gitlab-c...

three.js を使用してクールなアシッドスタイルの 3D ページ効果を実現します

この記事では、主にReact + three.jsテクノロジースタックを使用して3Dモデルの読み込み...

Dockerコンテナはルーティングを介して直接通信し、ネットワーク通信を実現します。

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...

VMwareがモジュールディスクを早期に開けない場合の解決策の詳細な説明

VMWare (Virtual Machine ware) は、「仮想 PC」ソフトウェア会社です。...

MySQL 8.0 のデフォルトのデータディレクトリを変更する (設定なしの簡単な操作)

使用シナリオ: Alibaba Cloud を使用しており、データディスクを別途購入しました (大容...

Tkinterはjsキャンバスを使用してグラデーションカラーを実現します

目次1. RGBを使用して色を表す2. Tkinter キャンバスコンポーネント3. グラデーション...

MySQLユーザー権限テーブルについての簡単な説明

MySQL はインストール時に自動的に mysql という名前のデータベースを作成します。mysql...

初心者向けMySQLシリーズチュートリアル

目次1. 基本概念と基本コマンド1) 基本的な概念2) 基本コマンド2. SQL文の記述順序と実行順...

Linux ネットワークプログラミング機能の簡単な分析

目次1.ソケットを作成する2. ソケットをバインドする3. 聞き手を作る。聞く4. 接続が受け入れら...