2017-02-04 7 views
0

私はクラブ/パーティーで公演用の視聴覚アプリを作成しています。 60fpsで動作するwebGLアニメーションが必要です。毎秒店舗に多くの変更を加えたリビジョンのパフォーマンス

アニメーションは、毎秒絶えず変化する可能性のある複数のパラメータに応答します(たとえば、スピンするキューブのサイズが音楽にパルスする可能性があります)。一例として、毎秒60回変化する20個のパラメータが存在する可能性がある。これらのパラメータは、UIで数値/視覚的バーとして表されます。

これを行うにはReact/Flux/NWJSを使用していますが、正常に動作します。しかし、私はReduxが本当に好きで、データフローをReduxモデルに変更したいと考えています。

質問: 1秒間に60回以上変化する可能性がある場合、ストアを不変な方法で更新すると(たとえば、変更ごとに複製する)、パフォーマンスに影響しますか?もしそうなら、私はこれをバイパスしてアプリの特定の部分で迂回することができ、アプリの変更頻度を少なくするためにReduxを使うだけです。

+0

(RAFスケジューラの例を参照)、ここでのドキュメントで提案されているように、​​にアクションと派遣をキューReduxのミドルウェアを使用することができます - I試してみることをお勧めします。不必要な再レンダリングを避けるために、コンポーネントに 'shouldComponentUpdate'を実装すると恩恵を受けるかもしれません。 –

+0

私はreduxを使用してコードを実行可能にする方法を見つけることができるはずだと思います。あなたの検索結果には、https://facebook.github.io/immutable-js/という興味深いものがあります。興味深いGitHubの会話は、あなたの同じかゆみを傷つけることを話しています:https://github.com/reactjs/redux/issues/328#issuecomment-125035516 –

答えて

0

ビジュアルにWebGLを使用している場合は、Reduxはそのままにして、すべてをスキップしてください。 ReduxはReactから独立しています。セマンティクスを自由に使用して、subscribeというコールバックを登録してStoreを変更すると何かをすることができます。

http://es.redux.js.org/docs/api/Store.html#subscribe

それはあなたのアプリケーションの様相私にははっきりしない、WebGLを持つ可視化と同時に画面に存在スライダー/コントロールの両方になりますか?

そうであれば、あなたのUIコントロールをホストするReactアプリと、canvasを含む別のDIVを持つことができます。 Reactの部分は標準のReduxを使用してパラメータの状態を保持し、WebGLの独立したコードはすべて​​の店舗から読み込んでシーンをレンダリングする必要があります。

また、答えは多くのことに依存

http://redux.js.org/docs/advanced/Middleware.html#seven-examples

関連する問題