我想在我的应用程序中试验一些 React 组件的性能。我知道 ClojureScript 的 Om 框架 ( https://github.com/swannodette/om ) 使用了一些优化技术,例如使用不可变对象(immutable对象)来实现 shouldComponentUpdate()
并在 requestAnimationFrame
更改时呈现。
是否有纯 JavaScript 混合可以引入基于 requestAnimationFrame
的渲染?
最佳答案
如果您使用类似 Browserify 的东西,这是可能的或 webpack从 CommonJS 环境构建 React,或者以其他方式生成 React 的自定义构建。也就是说,如果您只使用可下载的预构建 React,您不能这样做。
查看 Pete Hunt 的 react-raf-batching project一个更全面的解决方案(包括 rAF polyfills),但这里有一个最小的例子来实现这个工作:
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);
关于javascript - react.js - 在 requestAnimationFrame 上渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27877431/