2017-11-07 13 views
1

私は店(VuexまたはRedux)を使用するのがちょっと混乱しています。 はじめに、私たちは両方とも状態管理のために生まれたことを知っており、通常、他のコンポーネントを通じてコン​​ポーネントの状態を変更する場合に使用します。両方のコンポーネントの内部にaxiosを使用して保存する必要がありますか?

はしかし、私の質問によると、私たちは、成分Aを得たと仮定し、B.は、シナリオは次のとおりです。

  • 他のコンポーネントは、我々は店舗運営にこの状態を保存するように、Bの状態を使用する必要がありますがBがaxiosを使用する必要がある場合は、actionとして店舗ファイルでも動作させるようにします。

  • 次に、コンポーネントAの場合、グローバルな使用のために状態を設定する必要はありませんが、それでもaxiosの使用が必要なので、コンポーネントA内のaxiosを使用するのが良い方法ですか?私の悪い英語のため申し訳ありません

あなたが直接あなたのコンポーネント内axios(またはモジュールを取り出し、他のデータ)を呼び出すことができますが、私は、。成分Bのために、それはかなりストレートフォワードだ、まあ:(

+1

はい - コンポーネントAがそのコンポーネントの外部で使用されないOWN状態を持っている場合、そのコンポーネントの内部で呼び出しを行うことはできますが、Reduxのような状態マネージャを持つという目的をはるかに凌駕します。私は個人的には、私の行動を追跡してデバッグすることができるという単一の理由から、それをReduxに接続するだけですが、個人的にはそれだけです。 –

+0

@SpencerBigumご返信ありがとうございます。それは私が思うのは、アクションだけを使うのはちょっと複雑だと思うからです。しかし、私はあなたの考えを考えます! – Tien

答えて

1

を知っていますアクションペイロードを介してStoreに結果を渡すと、アプリケーションの成長や変更が始まっている間は複雑になります。互いに直接知っているモジュールが多すぎると悪い考えです。

従来のパス:axiosストアで使用されているサービスをそのアクション内で作成します。 tsはデータフェッチプロセスの詳細と適切に分離されています。コマンド - アクション - を発行し、ストアから更新を受け取ります。 Storeだけがこれらのコマンドを正しく実行する方法を知っています。


ここで、あなたが言うように、完全に分離されたコンポーネントAの場合、選択肢が広くなります。私は少なくともあなたのStoreと同じインスタンス(axios)を使用することを検討したいと思います。コンポーネントBの場合と同じように設定してデバッグする必要があるかもしれません。例えばthis threadをチェックしてください。 )

さらに、コンポーネントAではデータのフェッチも分離する必要があるユースケースを考えることができます。たとえば、Aが全体的に異なるアプリケーションに近い場合などです。この場合、データプロバイダを共有すると、フローが複雑になることがあります。

+0

あなたの返事をありがとう、私はこれらの日に返信に忙しかった。申し訳ありません。 私の意見はあなたと同じです。 Aと同じパターンのコンポーネントBを使用すると、今度はもっと多くの仕事ができるようになります。 BのアプローチをAに適用すると、すべてのコンポーネントのデバッグに役立つことは間違いありませんが、私が言ったように、さらに多くのことを行う必要があります。 – Tien

関連する問題