Closed10

Vuexを入れるか迷った時に見る

まさやまさや

メリット

まさやまさや

共通データ管理が楽

Vuexなしだと子で変更があった時、親に通知($emit)し親側で処理を行い、変更があったデータに関してはpropsで子に渡す
この親子関係が多くなってくると親への通知($emit)が複雑化したり、propsが過剰になりがちになる

Vuexを使用するとこの親子間での受け渡しで起こりうる複雑化が無くなる

まさやまさや

保守性の向上

複数のコンポーネントで同じデータを更新する時、同じ更新処理を扱う為データの整合性を保てる

まさやまさや

デメリット

まさやまさや

データ依存範囲が見えづらくなる

Vuexはいわゆるグローバル変数のようなものです。なので動作を追いにくいといったことが起こりえます

まさやまさや

学習コスト?

概念等の学習コスト、正直あまり感じてはいませんが一応...

まさやまさや

副作用の扱い方に注意する必要がある

例えば子コンポーネントが親からデータを受け取ったり、コンポーネント内で更新する時に副作用を起こし、データに対して何らかの処理を加えたりするかと思います

これがVuexを使うとなると、どこで副作用を起こすか注意して記述する必要があると思います

コンポーネントのメソッド内部で副作用を起こし、Vuexに通知する時は他のコンポーネントから同じデータを通知する時に同じような副作用がある。ということを理解して書く必要があります
また、逆にVuexのstateに対してmutateする時に副作用を起こすのであればどこのコンポーネントで行われるべき仕様なのか理解しておく、という問題もあります

APIをVuexで叩くだけなら良いのですが...

このスクラップは2022/01/28にクローズされました