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

推薦する

JavaScript の非同期処理で待機時間を節約できますか?

JavaScriptで非同期実行の結果を同期的に取得するには、 for ループ内でawaitを使用...

CSS3で実装された天気アイコンのアニメーション効果

成果を達成する 実装コードhtml <div class="wrapper"...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

Web でよく使われるフォントの紹介 (iOS および Android ブラウザでサポートされているフォント)

年末なので仕事も少なくなっています。私が何もせずにいるのを見ると、上司はきっと不快に思うでしょう。そ...

プロジェクトに必須の 8 つの JavaScript コード スニペット

目次1. ファイル拡張子を取得する2. コンテンツをクリップボードにコピーする3. スリープ時間は何...

HTMLタグと基本要素の学習のまとめ

1. HTML の要素とタグ<br />要素は、1 つのタグまたは 1 組のタグによって...

XHTML 特殊文字コレクション

注意&#160;ノーブレークスペース = ノーブレークスペース、 iexcl ¡ &...

vue+antv でレーダーチャートを実装するためのサンプルコード

1. 依存関係をダウンロードするnpm インストール @antv/データセットnpm インストール ...

Vueデータ変更検出の基本的な実装の簡単な分析

目次1. オブジェクトの変更検出2. オブジェクトに関する質問配列変更検出3.1 背景3.2 実装I...

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

1. 分割スクリプト (splitNginxLog.sh) を作成します。 * この例では、ログ分割...

CSS で overflow-y: visible; が機能しない理由の分析と解決

シナリオ最近の要件は、モバイル デバイス用の h5 ページです。これには、選択可能なカードの行が必要...

Nginx で IP と IP 範囲をブロックする方法

前面に書かれたNginx は単なるリバース プロキシおよび負荷分散サーバーではなく、電流制限、キャッ...

Linux で SVN サーバーをインストールする方法

1. Yumのインストール yum でサブバージョンをインストール 2. 構成1. 倉庫を作る/ho...

LinuxシステムでのSystemC環境設定方法

以下はcentos7での設定方法ですsystemc ソース パッケージをダウンロード: System...

Linuxのファイル操作の知識ポイントを詳しく解説

ファイル操作に関連するシステムコール作成するint creat(const char *ファイル名,...