【JS/Vue】VueXの浅い理解
注意
VueXについては、下記の記事を読むのが一番です。
vuexをまだ理解していない全人類に捧ぐvuexを利用したコードの図解 - Qiita
VueX
VueXの構成
- Actions
- Mutations
- State
以下全体図
全体の流れ
- stateを確認
- actionを呼び出し
- mutationsへcommit
- stateを更新
this.$store.dispatch('xxx') でコンポーネント内でアクションをディスパッチできます。あるいはコンポーネントのメソッドを store.dispatch にマッピングする mapActions ヘルパーを使うこともできます(ルートの store の注入が必要です):
アクション | Vuexより引用
store
アプリケーションの 状態(state) を保持するコンテナです。
storeの状態を変更する際は、Mutationsにコミットをすることで store を変更することが可能です。
templateから$storeにアクセスすることができます。
$sotre.state
actionの呼びだし方法
dipatch
this.$store.dispatch('メソッド名')
mapActions
methods: {
...mapActions(['login'])
}
actionで定義されるcommit
actionの定義をする際、下記のようにmutationsへcommitをします。
その際のcommitが少しとっつきづらいです。
// 実装
actions: {
toggleSideMenu ({ commit }) {
commit('toggleSideMenu')
}
}
// 本当は
actions: {
toggleSideMenu (context) {
context.commit('toggleSideMenu')
}
}
上記で記載の通り、context.commit
を呼び出しています。
詳しい解説は下記がわかりやすかったです。
vuexで登場する分割代入の説明 - Qiita
分割代入 - JavaScript | MDN
Flux
VueXは、Fluxがベースになっています。
Fluxを実装したのが、Reduxで、そこからVueXが生まれました。
flux/examples/flux-concepts at master · facebook/flux · GitHubより引用
全ての状態を持つべきか
公式ドキュメントでも述べられている通り、全てを置かなくても良いみたいです。
Vuex を使うということは、全ての状態を Vuex の中に置くべき、というわけではありません
ステート | Vuexより引用
参考記事
VueとVuexの間の値の連携の仕方 - Qiita
2018年Vue.jsとVuexを使ってる人には必ず知っていてほしい開発やメンテナンスの際に役立つ設計とTipsとサンプルコード - Qiita
Author And Source
この問題について(【JS/Vue】VueXの浅い理解), 我々は、より多くの情報をここで見つけました https://qiita.com/wqwq/items/456f64453a1f93fa734c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .