問題タブ [flux]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 店舗外でのRefluxアクションに耳を傾ける
私は、ajax呼び出しをフラックス/リフラックスのやり方に合わせる方法を見つけようとしています。私がオンラインで見つけた情報のスクラップから、API ロジックをストアから分離することは正しいようです。
そこから始めて、サーバーに要求を行うクライアント API を作成しました。ここで、これらの関数が私のアクションをリッスンし、リクエストを作成し、成功すると他のアクションをトリガーして、サーバーからの新しいデータでストアを更新するようにします。
API の逆流 createStore メソッドに似たものを作成するにはどうすればよいですか? または、サーバー呼び出しがアクションをリッスンするための他のクリーンな方法はありますか?
reactjs - CSRF トークンをノードから REACT/FLUX に渡す
私はnodejsを使用しており、通常は次のようなcsrfトークンを渡します:
ユーティリティ.js
app.js
そして、ejsページで私がすること
ただし、現在、フロントエンドにflux/reactを使用しており、フォーム送信のためにcsrfトークンを渡す必要があり、これを行う方法がわかりません。翡翠を使用して同様の答えがここにありました:
express.js を使用して Ajax 呼び出しで CSRF 保護を実装する方法 (完全な例を探しています)?
ただし、私は ejs (jsx を使用) (または単に html) を使用しており、jade を使用したくありません。
reactjs - 柔軟な storeListeners イベント エミッター
イベントを発生させたハンドラーを見つける方法はありますか?
たとえば、私の店:
最後の関数が起動すると、リスナーは次のようになります。
イベントを発生させた関数を知りたい
javascript - アクションは店と話すべきですか?
私はフラックスアーキテクチャと反応して使用していますが、直面している問題があります。
ユーザー ID を取得してユーザーをフェッチするアクションを作成する必要があります。コードは次のとおりです。
すべてのユーザーをキャッシュするストアを使用したいので、ユーザーが以前にフェッチした場合、アクションはバックエンド呼び出しを実行しません。新しいアクションは次のようになります。
問題は、アクションでユーザー データを管理したくないということです。そのため、getFetchedUser() を実装する唯一の方法は、Users ストアをチェックインすることです。
これは良いアプローチですか?
アクションはストアにアクセスできますか?
reactjs - フラックス アクションはストアにアクセスできますか?
Flux アクションはストアにアクセスできますか? 最近、コード レビューのコメントから、特定の値をストアからアクションで直接取得するのではなく、React コンポーネントから渡すように求められました。これにより、Flux のデータ フローが次のように変更されます。
これに
すべてのデータ変更は依然としてディスパッチャを経由しているため、データ フローは依然として意図した方向に進んでおり、更新は依然としてアトミックであり、フローは依然として簡単に推論できるように思えます。何か欠点はありますか?
javascript - RefluxJS ストアは、trigger() を呼び出すときにどのプロパティが変更されたかを示すことができますか?
私は Flux 全体に慣れていませんが、Reflux から始めて理解を深めようとしています。
私が理解しているように、Refluxストアにtrigger
は、ストアのデータが変更されたことを示すメソッドがあり、更新されたデータをそこに渡します。このデータは、 Reflux.connect mixin または同様のメソッドを使用して、React コンポーネントの状態として (または状態のプロパティの 1 つとして) 設定できます。
しかし、ストアに個別にリッスンする必要がある複数のデータ セットがある場合はどうなるでしょうか。TodoMVC RefluxJS exampletitle
を変更していて、TodoStore にtodo リスト (list
および TODO アイテムのリスト)の名前を示すプロパティも含めたいとします。プロパティ<Title>
への変更をリッスンし、変更時に をその状態として設定するコンポーネントもあるとします。title
title
を呼び出すとthis.trigger(title)
、タイトル コンポーネントが更新されますが、todo コンポーネントはタイトル文字列を状態として使用しようとするため、どのデータが変更されたかを示す方法が必要です。これら 2 つのプロパティ (title
とlist
) を別のストアに分ける必要がありますか? または、すべての呼び出しにtrigger
、プロパティを示す文字列を含める必要があります:this.trigger("title", this.title)
またはthis.trigger("todos", this.list)
. それとも、すべてのデータを 1 つのオブジェクトに結合して、リスナーが (たとえば を使用してReflux.connectFilter
) 選択する必要がありますか?
これらの最後の 2 つの例では、ストアから返されたデータを取得し、コンポーネントの状態をそれに直接設定するため、this.trigger()
呼び出しに新しいデータが導入されます。これはReflux.connect
、これ以上使用できないことを意味します。connect
これは、 を使用Reflux.listenTo(TodoStore,"onTodoChange")
して、trigger
このコンポーネントに関係のない呼び出しを除外する必要があるということですか?
javascript - React / Flux コンポーネントで状態遷移を処理する方法
ユーザー入力に反応する AJAX ベースの検索フィールドがある場合、AJAX を介してバックエンドから検索結果を要求し、検索フィールドの下のドロップダウンに結果を表示し、カーソル キーを介して検索結果をナビゲートし、esc
キーの押下に反応します。インテリジェントな方法。
現在のバックボーン ベースのコンポーネントは多くの点で壊れているため、アーキテクチャを使用React
してその検索コンポーネントを再実装したいと考えています。Flux
計画中に、私のコンポーネントには少なくとも 10 の異なる状態 (おそらくそれ以上) がありactions
、ユーザー入力によってactions
トリガーされ、非同期サーバー応答によってトリガーされるように反応する必要があることが判明しました。
質問store
1 :親コンポーネントではなく、すべての状態をモデル化する必要がありますか? つまり、すべてのユーザー入力がストアの状態 (たとえば ) を変更し:searchQuery
、:searchResults
親ビュー コンポーネントがその状態の変化に反応することを意味します。
質問2 : または、親コンポーネント自体ですべての状態をモデル化し、 a を省略しstore
、完全に削除する必要がdispatcher
ありますか?actions
質問3 :store
または親コンポーネント自体の状態の処理とは別に、コンポーネント自体は少なくとも 10 の異なる状態を持つことができ、特定の数の遷移のみが許可される必要があることが判明しました。通常、ここでステートマシンの実装をプルし、すべて:states
をモデル化し、許可され:transitions
た遷移を実行store
して、親コンポーネントでアクションが受信されるか、コールバック メソッドが呼び出されるたびに実行します。コンポーネント内でこれらの間でReact way
処理するのが正しいのは何ですか?states
transitions
states
質問Flux
4 : Javascriptの最先端の実装はどれですか? これまで逆流を見てきましたが、よくわかりません。それが私の毒です。
私はここであらゆる種類の提案を受け入れます。