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 コマンド

推薦する

dockerを使用してdubboプロジェクトをデプロイする方法

1. まず、Springbootを使用して簡単なDubboテストプログラムを構築し、関連する依存関係...

組み込み Linux で QT アプリケーションを再起動する簡単な方法 (QT4.8 qws ベース)

アプリケーション ソフトウェアには通常、次のようなビジネス要件があります。新しいバージョンの APP...

LeetCode の SQL 実装 (175. 2 つのテーブルの結合)

[LeetCode] 175.2つのテーブルを結合する表: 人物+-------------+--...

ノードをMySQLデータベースに接続する際に発生する問題と解決策

今日、MySQL の新しいバージョン (8.0.21) をインストールしましたが、ノード フレームワ...

Dockerがプライベート倉庫Harborを構築する手順

港Harborは、エンタープライズレベルのプライベートDockerイメージリポジトリを構築するための...

Mysql5.6.36 スクリプトのコンパイル、インストール、初期化のチュートリアル

概要この記事は、centos7.3 上で mysql5.3.6 を自動的にコンパイルしてインストール...

Linux で rpm パッケージを見つけるために CD をマウントする方法

前面に書かれたLinux を使用する際にソフトウェアをインストールする必要がある場合があります。もち...

Win32 MySQL 5.7.27 のインストールと設定方法のグラフィックチュートリアル

MySQL 5.7.27のインストールチュートリアルは以下のように記録され、皆さんと共有されています...

Vue Element-ui はツリーコントロールノードを実装し、アイコンを追加します。詳細な説明

目次1. レンダリング2. データをバインドし、ツリーテーブルにラベルを追加する3. すべてのコード...

Mysql の一時テーブルとパーティションテーブルの違いの詳細な説明

一時テーブルとメモリテーブルメモリ テーブルとは、メモリ エンジンを使用するテーブルを指します。テー...

Linuxホスト名変更コマンドの詳しい説明

Linux ホスト名変更コマンド1. ホスト名を一時的に変更するだけの場合は、hostname コマ...

aタグに下線を付け、クリック前後で色を変える方法

コードをコピーコードは次のとおりです。リンクフォントサイズ: 12px;色: #000000;テキス...

VirtualBox に CentOS、JDK、Hadoop をインストールする詳細なチュートリアル

目次1. 前提条件1.1 サポートされているプラ​​ットフォーム1.2 jdk および hadoop...

nginxディレクトリパスをリダイレクトする方法

ドメイン名に続くパスがデフォルトの Web ディレクトリではなく、ローカル ディスク上の他のディレク...

MySQLの挿入文字化け問題を解決する方法

問題の説明: MySQL に中国語の文字を挿入する場合、または MySQL では中国語の文字が正常に...