Always do useCreateElement for updates
Initial render can still be a markup string.
Ben Alpert committed
Oct 15, 2015 at 16:09 UTC
5a7c273a1bf853cf4ba0c70e9a64c41ea9385ebb
4 files changed
+9
-8
src/renderers/dom/client/ReactMount.js
+3
-1
@@ -17,6 +17,7 @@ var DOMProperty = require('DOMProperty');
17
var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
18
var ReactCurrentOwner = require('ReactCurrentOwner');
19
var ReactDOMContainerInfo = require('ReactDOMContainerInfo');
20
+var ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
21
var ReactElement = require('ReactElement');
22
var ReactInstanceHandles = require('ReactInstanceHandles');
23
var ReactMarkupChecksum = require('ReactMarkupChecksum');
@@ -287,7 +288,8 @@ function batchedMountComponentIntoNode(
288
context
289
) {
290
var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(
290
- /* forceHTML */ shouldReuseMarkup
291
+ /* useCreateElement */
292
+ !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement
293
);
294
transaction.perform(
295
mountComponentIntoNode,
src/renderers/dom/client/ReactReconcileTransaction.js
+2
-4
@@ -15,7 +15,6 @@
15
var CallbackQueue = require('CallbackQueue');
16
var PooledClass = require('PooledClass');
17
var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
18
-var ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
18
var ReactInputSelection = require('ReactInputSelection');
19
var Transaction = require('Transaction');
20
@@ -107,7 +106,7 @@ var TRANSACTION_WRAPPERS = [
106
*
107
* @class ReactReconcileTransaction
108
*/
110
-function ReactReconcileTransaction(forceHTML) {
109
+function ReactReconcileTransaction(useCreateElement) {
110
this.reinitializeTransaction();
111
// Only server-side rendering really needs this option (see
112
// `ReactServerRendering`), but server-side uses
@@ -116,8 +115,7 @@ function ReactReconcileTransaction(forceHTML) {
115
// `ReactTextComponent` checks it in `mountComponent`.`
116
this.renderToStaticMarkup = false;
117
this.reactMountReady = CallbackQueue.getPooled(null);
119
- this.useCreateElement =
120
- !forceHTML && ReactDOMFeatureFlags.useCreateElement;
118
+ this.useCreateElement = useCreateElement;
119
}
120
121
var Mixin = {
src/renderers/shared/reconciler/ReactUpdates.js
+3
-2
@@ -68,8 +68,9 @@ function ReactUpdatesFlushTransaction() {
68
this.reinitializeTransaction();
69
this.dirtyComponentsLength = null;
70
this.callbackQueue = CallbackQueue.getPooled();
71
- this.reconcileTransaction =
72
- ReactUpdates.ReactReconcileTransaction.getPooled(/* forceHTML */ false);
71
+ this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled(
72
+ /* useCreateElement */ true
73
+ );
74
}
75
76
assign(
src/test/ReactTestUtils.js
+1
-1
@@ -432,7 +432,7 @@ ReactShallowRenderer.prototype.render = function(element, context) {
432
if (!context) {
433
context = emptyObject;
434
}
435
- var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(false);
435
+ var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(true);
436
transaction.perform(this._render, this, element, transaction, context);
437
ReactUpdates.ReactReconcileTransaction.release(transaction);
438
};