6

Reactはステートレス コンポーネントの使用を可能な限り推奨し、ステートフルな親コンポーネントでそれらを管理します。これにより、ステートレス コンポーネントがより再利用可能になり、管理が容易になることを理解しています。ただし、極端な場合、App.js などの最上位コンポーネントに常に状態を配置し、長い props チェーンを介して情報とコールバックを渡すことができます。また、Flux を使用している場合は、アクションもいつでもディスパッチできます (コールバックを介して実行されます)。

それで、ステートフル コンポーネントとステートレス コンポーネントを分離するための線は何だろうと思っています。また、Flux を使用している場合、アクションをどこにディスパッチする必要がありますか?

--- 例を追加 ---

ツールバーと表示されるコンテンツを備えた Web アプリのような Google ドキュメントがあるとします。コンポーネント構造になると思います。

<App>
    <Toolbar />
    <Content />
</App>

ツールバーには、太字テキスト ボタンなど、表示内容に影響を与えるボタンがあります。

では、アプリは onButtonPressed コールバック プロパティをツールバーに渡し、アクションをそれ自体でディスパッチする必要がありますか、それともツールバーにそれ自体を行わせる必要がありますか?

アプリは contentString 小道具をコンテンツに渡す必要がありますか、それともコンテンツ自体にストアの変更をリッスンさせる必要がありますか?

ありがとう!

4

2 に答える 2

1

私の観点からは、単純なアプリケーションで Flux のパターンを次のように使用できます。

  1. 子供たちはアクションを発します。
  2. アプリケーションはストアをリッスンし、処理されたデータを子に伝達します。

このアプローチでは、ステートレス コンポーネントを使用できますが、コールバック props を使用しない適切なコード構成を使用できます。ただし、両方の提案も正しいです。アプリケーションのサイズとニーズに関して決定することです。

ビルドするコンポーネントがアプリケーションの外部で使用される場合は、できるだけフラックスを使用せず、開発者が必要に応じて必要なアプローチを選択できるようにします。

于 2015-09-09T07:47:59.283 に答える