今回は、vuex が状態オブジェクトを操作する方法について詳しく説明します。vuex が状態オブジェクトを操作するときの 注意事項 は何ですか?実際のケースを見てみましょう。
Vuexとは何ですか?
VueX は、Vue.js アプリケーション用に特別に設計された状態管理アーキテクチャであり、各 vue コンポーネントの変更可能な状態を均一に管理および維持します (vue コンポーネント内の特定のデータとして理解できます)。 Vue には、状態、ゲッター、ミューテーション、アクション、モジュールという 5 つの中心的な概念があります。
概要
state => 基本データgetter => 基本データから派生したデータ
mutations => 変更されたデータを送信するメソッド、同期!
actions => デコレーターのように、突然変異をラップして非同期にします。
modules =>
ModularityVuex
State
stateはVuexの基本データです!単一の状態ツリー
Vuex は単一の状態ツリーを使用します。つまり、1 つのオブジェクトにすべての状態データが含まれます。コンストラクター オプションとして、state は必要なすべての基本的な状態パラメーターを定義します。 Vue コンポーネントの Vuex•次のように、Vue の Computed を通じて Vuex の状態を取得できます:const store = new Vuex.Store({ state: { count:0 } }) const app = new Vue({ //.. store, computed: { count: function(){ return this.$store.state.count } }, //.. })
状態オブジェクトを操作する vuex のサンプル コードを見てみましょう
store.state.count が変更されるたびに、計算されたプロパティが再計算され、関連付けられた DOM が更新されます。 すべての Vuex アプリケーションの中核はストア (倉庫) です。 vuex について説明するために公式ドキュメントから 2 つの文を引用します: 1. Vuex の状態ストレージは応答性があります。 Vue コンポーネントがストアから状態を読み取るときに、ストア内の状態が変化すると、それに応じて対応するコンポーネントが効率的に更新されます。 2. ストアで状態を直接変更することはできません。ストア内の状態を変更する唯一の方法は、ミューテーションを明示的にコミットすることです。これにより、あらゆる状態変化を簡単に追跡できるようになり、アプリケーションをより深く理解するのに役立ついくつかのツールを実装できるようになります。vuex で状態
1 を使用し、ルートコンポーネントにストアを導入すると、サブコンポーネントは this.$store.state.data 名を通じてこのグローバル属性 を取得できます。
vue-cliを使用して作成したプロジェクト、App.vueがルートコンポーネントApp.vueコード<template> <p id="app"> <h1>{{$store.state.count}}</h1> <router-view/> </p> </template> <script> import store from '@/vuex/store'; export default { name: 'App', store } </script> <style> </style>
<template> <p> <h3>{{this.$store.state.count}}</h3> </p> </template> <script> export default { name:'count', } </script> <style scoped> </style>
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); const state = { count: 1 } export default new Vuex.Store({ state, })
<template> <p> <h3>{{this.$store.state.count}}--{{count}}</h3> <h4>{{index2}}</h4> </p> </template> <script> import { mapState,mapMutations,mapGetters } from "vuex"; export default { name:'count', data:function(){ return { index:10 } }, //通过对象展开运算符vuex里的属性可以与组件局部属性混用。 computed:{...mapState(['count']), index2() { return this.index+30; } } , } </script> <style scoped> </style>
jQuery における length と size() の違いは何ですか?
以上がvuexの状態オブジェクトの操作方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。