8

Я хочу поэкспериментировать с выполнением некоторых компонентов React внутри моего приложения. Я знаю, что платформа Omni ClojureScript (https://github.com/swannodette/om) использует некоторые методы оптимизации, такие как использование констант с внедрением shouldComponentUpdate() и рендеринг на requestAnimationFrame изменения.react.js - Render on requestAnimationFrame

Есть ли простой смеситель для JavaScript, который может представить рендеринг на основе requestAnimationFrame?

ответ

8

Это возможно, если вы используете что-то вроде Browserify или webpack, чтобы построить React из среды CommonJS или создать произвольную сборку React. То есть вы не можете сделать это, если вы просто используете загружаемый, готовый React.

Заканчивать Пит Хант 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); 
+3

Примечания Есть несколько (solveable) случаев угла вы можете захотеть handle: https://github.com/petehunt/react-raf-batching/issues/8 –

+0

Спасибо, очень информативно! – Kosmetika

+1

Начиная с написания этого комментария, «npm install react-raf-batching» требует, чтобы равный ответ 0,9, а текущая версия - 0.14.5, поэтому он больше не является быстрой установкой. Я не пробовал, если это просто требует незначительной настройки или чего-то большего. –

 Смежные вопросы

  • Нет связанных вопросов^_^