mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Use a custom batching strategy for server rendering
This simply ignores any enqueued actions. This means that we don't have to have special logic for componentWillMount. It is just that those updates are never enqueued.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Copyright 2014-2015, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*
|
||||
* @providesModule ReactServerBatchingStrategy
|
||||
* @typechecks
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var ReactServerBatchingStrategy = {
|
||||
isBatchingUpdates: false,
|
||||
batchedUpdates: function(callback) {
|
||||
// Don't do anything
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = ReactServerBatchingStrategy;
|
||||
@@ -11,11 +11,14 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var ReactDefaultBatchingStrategy = require('ReactDefaultBatchingStrategy');
|
||||
var ReactElement = require('ReactElement');
|
||||
var ReactInstanceHandles = require('ReactInstanceHandles');
|
||||
var ReactMarkupChecksum = require('ReactMarkupChecksum');
|
||||
var ReactServerBatchingStrategy = require('ReactServerBatchingStrategy');
|
||||
var ReactServerRenderingTransaction =
|
||||
require('ReactServerRenderingTransaction');
|
||||
var ReactUpdates = require('ReactUpdates');
|
||||
|
||||
var emptyObject = require('emptyObject');
|
||||
var instantiateReactComponent = require('instantiateReactComponent');
|
||||
@@ -33,6 +36,8 @@ function renderToString(element) {
|
||||
|
||||
var transaction;
|
||||
try {
|
||||
ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);
|
||||
|
||||
var id = ReactInstanceHandles.createReactRootID();
|
||||
transaction = ReactServerRenderingTransaction.getPooled(false);
|
||||
|
||||
@@ -44,6 +49,9 @@ function renderToString(element) {
|
||||
}, null);
|
||||
} finally {
|
||||
ReactServerRenderingTransaction.release(transaction);
|
||||
// Revert to the DOM batching strategy since these two renderers
|
||||
// currently share these stateful modules.
|
||||
ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +68,8 @@ function renderToStaticMarkup(element) {
|
||||
|
||||
var transaction;
|
||||
try {
|
||||
ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);
|
||||
|
||||
var id = ReactInstanceHandles.createReactRootID();
|
||||
transaction = ReactServerRenderingTransaction.getPooled(true);
|
||||
|
||||
@@ -69,6 +79,9 @@ function renderToStaticMarkup(element) {
|
||||
}, null);
|
||||
} finally {
|
||||
ReactServerRenderingTransaction.release(transaction);
|
||||
// Revert to the DOM batching strategy since these two renderers
|
||||
// currently share these stateful modules.
|
||||
ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user