@samitouri / QOS-React-2 / commits / 5a7c273a1b

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 };