react + reduxでcanvasを利用した開発をしています。
諸事情により実際このコードは見せられないのですが、
例えばパーティクルを描画したいと思っているとします。
パーティクルは10000個程度あるものです。
パーティクルの座標を全て配列としてreduxで管理しています。
一つのパーティクルの座標が移動したときに、reduxではimmutableなものを返す必要があると思うので、新しく配列をつくり、返します。
しかし、10000個程度になってくると新しい配列を作るか、そのまま配列の値を変更するかでパフォーマンスの差が出てきます。
なので、配列のコピーなどはなるべくしたくないなと思っています。
また、このパーティクルの配列はDOMを生成するためというわけではなく、canvasに描画するためだけのものです。
そのため、このパーティクルの配列が新しくアップデートされたからといって、DOM更新は必要なく、canvasの再描画を行えばいい話なので、わざわざreduxで管理する旨味もないかもしれません。
(一応ですが、色々なコンポーネントからこのパーティクルの配列の値を使いたい場面があるので、コンポーネント内の変数とかにはできません。)
今の所、reduxで管理するのはやめて、グローバル変数でこの配列だけ管理してみようかと考えていますが、
グローバル変数を使うのには少々抵抗があります。
もしベストな解決方法が思い浮かびましたら、ぜひ教えていただきたいです。
よろしくお願いします。
あなたの回答
tips
プレビュー