8

私のアプリ内でいくつかのReactコンポーネントのパフォーマンスを実験したいと思います。私は、ClojureScriptのOmフレームワーク(https://github.com/swannodette/om)がshouldComponentUpdate()を実装し、​​のレンダリングでimmutablesを使用するような最適化テクニックを使用していることを知っています。react.js - Render on requestAnimationFrame

​​に基づいてレンダリングを導入できるプレーンなJavaScriptミックスインはありますか?

答えて

8

これは、Browserifyまたはwebpackのようなものを使用してCommonJS環境からReactを構築する場合、またはReactのカスタムビルドを作成する場合に可能です。つまり、できません。これは、ダウンロード可能な、あらかじめ構築されたReactを使用している場合にのみ実行します。

ピート・ハントのreact-raf-batching project(RAFのpolyfillsを含む)より包括的なソリューションのためのチェックアウトが、ここではこの作業を取得するために、最小限の例です:あなたがしたい場合がありますいくつかの(solveable)コーナーケースがある

var ReactUpdates = require("react/lib/ReactUpdates"); 

var rafBatchingStrategy = { 
    isBatchingUpdates: true, 
    batchedUpdates: function(callback, param) { 
    callback(param); 
    } 
}; 

var tick = function() { 
    ReactUpdates.flushBatchedUpdates(); 
    requestAnimationFrame(tick); 
}; 

requestAnimationFrame(tick); 

ReactUpdates.injection.injectBatchingStrategy(rafBatchingStrategy); 
+3

注意ハンドル:https://github.com/petehunt/react-raf-batching/issues/8 –

+0

ありがとう、非常に有益! – Kosmetika

+1

このコメントを書いている時点で、 'npm install react-raf-batching'は反応する0.9のピアを必要とし、現在のバージョンは0.14.5です。これはもはやクイックインストールではありません。マイナーな調整やもっと複雑なことが必要な場合は試していません。 –