2017-06-08 10 views
0

現在、私はReact 'shouldComponentUpdate'メソッドで問題に遭遇しました。私はリンクによってその関数に引数を渡すことに気付きました。したがって、私はnextPropsとthis.propsを同じものとして持つので、私は最適化を使用できませんでした。React:Immutable.js対JSON.parse(JSON.stringify())

私の同僚は、JSON.parse(JSON.stringify)でオブジェクトをコピーする代わりに不変のデータ構造を使用して回避することを彼に説得するにはどうすればよいですか?この方法を比較して問題を解決するベンチマークはありますか?

+0

hmmmはあなたの同僚のために十分な説得力のあるドキュメントですか?正直言って私は誰かが不変なデータについて「あまりにも多くのコピーを」と言うことを期待していますが、もしあなたの同僚がすでに 'JSON.parse(JSON.stringify) 'をあまりにも多くしているのであれば、 – niceman

+0

@niceman [Immutable](https://facebook.github.io/react/docs/optimizing-performance.html#using-immutable-data-structures)を使用することが推奨されているところで、拡散文字、Object.assignまたはJSON.parse(JSON.stringify())を使用する代わりに、この問題を解決しますか?それは参考になるでしょう。 –

+0

それは公式のチュートリアルです:https://facebook.github.io/react/tutorial/tutorial.html#why-immutability-is-important – niceman

答えて

0

Chromeではstringify/parseが他のものより速く、Immutable.jsは最も遅いようです(JSPerf)。私はこの結果によって落胆しましたが、私はthis topic on Redditを見つけました。そして最後に私はそれを理解しています確かにスピードではなく、頑強なAPIについて不変であり、Reduxとのカップルでは本当に輝きます。 また、私は先の尖ったRedditの議論からこの考えを強調表示する必要があります。

は が

が、これはJavaScriptがあることを忘れないでください、そして、すべてのブラウザが何であるかを高速または低速今日はあるかもしれないことを optimizations-意味の複数の層を持っている 遅いか速いです明日(理由の範囲内)