最近、クライアントとサーバーの 2 つの redux ストアを使用して、ユニバーサル Web アプリを構築しています。Redux は、状態データを管理するための優れたツールのようです。React 以外のものに Redux を使用しても問題ありませんか? たとえば、コマンドライン アプリで Redux を使用できますか?
このクライアント ストアとサーバー ストアのアプローチは、「唯一の真実のルール」を破っているように感じますが、とてもいい感じで、これまでのところうまく機能しています。私が見つけたのは、リデューサーの約 80% を再利用して両方のストアを構成できることです。通常、サーバーの状態はコレクションであり、クライアントの状態は単一のオブジェクトになります。
例:チャット アプリのクライアント状態があるとします。
{
user: 'mike@aol.com',
room: {
name: 'sports',
users: [ ... ],
messages: [ ... ]
}
}
サーバーの状態は似ており、同様のレデューサーを使用できますが、オブジェクトではなくコレクションを使用します。
{
connectedUsers: ['mike@aol.com', ... ],
rooms: [
{
name: 'sports',
users: [ ... ],
messages: [ ... ]
},
{ ... },
{ ... }
]
}
両方の状態ツリーを作成すると、多くの同じレデューサーが再利用されます。このアプローチにより、サーバーにアクションを送信し、クライアントからのアクションで応答することも可能になりました。また、サーバー ストアを使用して、新しい接続が発生したときに状態クライアント ストアを生成することもそれほど難しくありません。
私の質問
私はユニバーサル アプリへのこのアプローチを楽しんできました。これはルールに違反していますか?クライアント ストアとサーバー ストアを使用できますか? サーバー ストアを使用してイニシャルを生成するのはそれほど難しくありません。
他の誰かがこの方法でユニバーサル アプリを使用していますか?