Vueのシンプルな状態管理ストアモードを理解する方法

Vueのシンプルな状態管理ストアモードを理解する方法

概要

ストア状態管理モードの実装の考え方は非常にシンプルで、共有データを格納するための状態属性を持つストア オブジェクトと、これらの共有データを操作するメソッドを定義することです。コンポーネントでは、store.state 共有データがデータの一部または全部として使用されます。store.state オブジェクト内の共有データを変更する場合は、ストアが提供するインターフェイスを呼び出して共有データを変更する必要があります。

以下は、ストア状態管理モードを紹介する簡単な ToDo リスト デモです。

1. store.jsを定義する

//ストア.js
エクスポートconstストア = {
    州: {
        すべて:
            {text: '中国語の宿題を書く', done: false},
            {text: '数学のテストを行う'、完了: false}
        ]
    },
    追加Todo(str){
        const obj = {テキスト: str、完了: false}
        this.state.todos.push(obj)
    },
    setDone(インデックス){
        this.state.todos[index].done = true
    }
}

2. store.js を使用するコンポーネント

//A.vue
<テンプレート>
    <div class="A">
        私はコンポーネントAです<ul>
           <li v-for="(todo,index) 内の todos" 
           :key="index" :class="todo.done?'done':''" @click="setDone(index)">
           {{todo.text}}
           </li>
       </ul>
    </div>
</テンプレート>

<スクリプト>
'../store/store.js' から {store} をインポートします。
エクスポートデフォルト{
    名前: 'A'、
    データ(){
        ストアの状態を返す
    },
    メソッド: {
        setDone(インデックス){
            ストア.setDone(インデックス)
        }
    }
}
</スクリプト>

<スタイルスコープ>
.A{
    背景: 赤;
    色: 白;
    パディング: 20px;
}
.A li.done{
    背景: 緑;
}
</スタイル>
//B.ビュー
<テンプレート>
    <div class="B">
        <div>
            私はコンポーネント B です。下の入力ボックスにタスクを入力し、コンポーネント A にタスクを追加します</div>
        <input type="text" v-model="text">
        <button @click="addTodo">ToDo を追加</button>
    </div>
</テンプレート>

<スクリプト>
'../store/store.js' から {store} をインポートします。
エクスポートデフォルト{
    名前: 'B'、
    データ(){
        戻る {
            文章: ''
        }
    },
    方法:{
        追加ToDo(){
            if(this.text){
                store.addTodo(このテキスト)
            }
        }
    }
}
</スクリプト>

<スタイルスコープ>
.B{
    背景: 黄色;
    パディング: 20px;
}
</スタイル>
//アプリ.vue
<テンプレート>
  <div id="アプリ">
    <あ />
    <B />
  </div>
</テンプレート>

<スクリプト>

'./components/A.vue' から A をインポートします。
'./components/B.vue' から B をインポートします。

エクスポートデフォルト{
  名前: 'アプリ'、
  コンポーネント:
    あ、
    B
  }
}
</スクリプト>

3. 成果を達成する

コンポーネントAに表示されているデータがコンポーネントBで追加・変更され、データ共有によるデータ通信が行われる様子がわかります。このようにシンプルストアモードが使用されています。

以上が、Vue シンプルステート管理のストアモードを理解する方法の詳細です。Vue シンプルステート管理のストアモードの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

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

<<:  MySQL テーブルを削除する際の I/O エラーの原因分析と解決方法

>>:  Ubuntu 基本チュートリアル: apt-get コマンド

推薦する

CocosCreator スケルトンアニメーション ドラゴンボーン

CocosCreator バージョン 2.3.4ドラゴンボーンアニメーションキールアニメーションを ...

MySQL におけるさまざまな一般的な結合テーブルクエリの例の概要

この記事では、例を使用して、MySQL のさまざまな一般的な結合テーブルクエリについて説明します。ご...

vue の v-bind を理解する

目次1. v-bindの主要ソースコードの分析1. v-bind属性はどこに均一に保存されるか: a...

Vueベースのカスタムコンポーネントを実装してアイコンを導入する

序文プロジェクト開発では、アイコンを使用する方法はたくさんあります。iconfont で適切なアイコ...

フローティングメニュー、上下スクロール効果を実現できます

コードはさらに合理化できますが、時間の制約があるため、まずはここで投稿して、自分で最適化してメニュー...

Nginx メモリプールのソースコード分析

目次メモリプールの概要1. nginxデータ構造2. nginxはOSからスペースngx_creat...

Linux (Ubuntu) での MySQL 5.7.17 のインストールと設定のチュートリアル

序文以前、MySQL 5.6 をインストールしました。3 か月後、開発者から MySQL で JSO...

CSSを使用して炎の効果を作成する方法

本文は以下から始まります。 123WORDPRESS.COM ダウンロード:純粋な CSS3 で超リ...

MySQL接続クエリの原理と応用

概要MySQL の最も強力な機能の 1 つは、データ取得を実行しながらテーブルを結合できることです。...

JavaScript クリップボードの使用法の詳細な説明

(1)はじめに: clipboard.js は、テキストをクリップボードにコピーする機能を実装する軽...

JavaScript によるダイナミッククリスマスツリーの詳細な説明

目次1. CSS のみを使用して作成したアニメーションのクリスマスツリー2. CSS のみを使用して...

JavaScript でフォロー広告を実装するためのサンプルコード

フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲...

mysql8.0.21 のダウンロードとインストールに関する詳細なチュートリアル

公式ウェブサイトアドレス: https://www.mysql.com/インストールの提案: インス...

ルートパスワードを変更するための MySQL 設定、MySQL サーバー接続、MySQL 共通コマンド図

1. ルートパスワードの設定と変更mysql が起動しているかどうかを確認します。起動していない場合...

動的および静的分離を実装するための Nginx サンプル コード

この記事のシナリオと組み合わせて、Nginx と Java 環境 (SpringBoot プロジェク...