mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Remove dependency to event system on the server (#10173)
I do this by splitting ReactDOMInjection into generic and client-only injection.
This commit is contained in:
+27
-27
@@ -25,28 +25,28 @@
|
||||
"gzip": 7214
|
||||
},
|
||||
"react-dom.development.js (UMD_DEV)": {
|
||||
"size": 623332,
|
||||
"gzip": 142653
|
||||
"size": 623782,
|
||||
"gzip": 142020
|
||||
},
|
||||
"react-dom.production.min.js (UMD_PROD)": {
|
||||
"size": 126056,
|
||||
"size": 126115,
|
||||
"gzip": 39910
|
||||
},
|
||||
"react-dom.development.js (NODE_DEV)": {
|
||||
"size": 581993,
|
||||
"gzip": 132990
|
||||
"size": 582443,
|
||||
"gzip": 132535
|
||||
},
|
||||
"react-dom.production.min.js (NODE_PROD)": {
|
||||
"size": 122421,
|
||||
"gzip": 38581
|
||||
"size": 122480,
|
||||
"gzip": 38633
|
||||
},
|
||||
"ReactDOMFiber-dev.js (FB_DEV)": {
|
||||
"size": 581277,
|
||||
"gzip": 133016
|
||||
"size": 581728,
|
||||
"gzip": 132560
|
||||
},
|
||||
"ReactDOMFiber-prod.js (FB_PROD)": {
|
||||
"size": 427011,
|
||||
"gzip": 96971
|
||||
"size": 427202,
|
||||
"gzip": 96685
|
||||
},
|
||||
"react-dom-test-utils.development.js (NODE_DEV)": {
|
||||
"size": 53430,
|
||||
@@ -65,20 +65,20 @@
|
||||
"gzip": 81957
|
||||
},
|
||||
"react-dom-server.development.js (UMD_DEV)": {
|
||||
"size": 308607,
|
||||
"gzip": 77369
|
||||
"size": 157366,
|
||||
"gzip": 39194
|
||||
},
|
||||
"react-dom-server.production.min.js (UMD_PROD)": {
|
||||
"size": 65509,
|
||||
"gzip": 22270
|
||||
"size": 26047,
|
||||
"gzip": 9845
|
||||
},
|
||||
"react-dom-server.development.js (NODE_DEV)": {
|
||||
"size": 267453,
|
||||
"gzip": 67912
|
||||
"size": 124505,
|
||||
"gzip": 31491
|
||||
},
|
||||
"react-dom-server.production.min.js (NODE_PROD)": {
|
||||
"size": 61847,
|
||||
"gzip": 20971
|
||||
"size": 23614,
|
||||
"gzip": 8897
|
||||
},
|
||||
"ReactDOMServerStream-dev.js (FB_DEV)": {
|
||||
"size": 264750,
|
||||
@@ -181,20 +181,20 @@
|
||||
"gzip": 50920
|
||||
},
|
||||
"ReactDOMServer-dev.js (FB_DEV)": {
|
||||
"size": 266904,
|
||||
"gzip": 67836
|
||||
"size": 123959,
|
||||
"gzip": 31418
|
||||
},
|
||||
"ReactDOMServer-prod.js (FB_PROD)": {
|
||||
"size": 197089,
|
||||
"gzip": 50856
|
||||
"size": 65096,
|
||||
"gzip": 17753
|
||||
},
|
||||
"react-dom-node-stream.development.js (NODE_DEV)": {
|
||||
"size": 269147,
|
||||
"gzip": 68409
|
||||
"size": 126199,
|
||||
"gzip": 31993
|
||||
},
|
||||
"react-dom-node-stream.production.min.js (NODE_PROD)": {
|
||||
"size": 62784,
|
||||
"gzip": 21287
|
||||
"size": 24554,
|
||||
"gzip": 9231
|
||||
},
|
||||
"ReactDOMNodeStream-dev.js (FB_DEV)": {
|
||||
"size": 264918,
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
var ReactDOMComponentTree = require('ReactDOMComponentTree');
|
||||
var ReactDOMInjection = require('ReactDOMInjection');
|
||||
var ReactDOMClientInjection = require('ReactDOMClientInjection');
|
||||
var ReactDOMStackInjection = require('ReactDOMStackInjection');
|
||||
var ReactGenericBatching = require('ReactGenericBatching');
|
||||
var ReactMount = require('ReactMount');
|
||||
@@ -27,6 +28,7 @@ var getHostComponentFromComposite = require('getHostComponentFromComposite');
|
||||
var warning = require('fbjs/lib/warning');
|
||||
|
||||
ReactDOMInjection.inject();
|
||||
ReactDOMClientInjection.inject();
|
||||
ReactDOMStackInjection.inject();
|
||||
|
||||
var ReactDOMStack = {
|
||||
|
||||
@@ -22,6 +22,7 @@ var ReactFeatureFlags = require('ReactFeatureFlags');
|
||||
var ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
|
||||
var ReactDOMFiberComponent = require('ReactDOMFiberComponent');
|
||||
var ReactDOMFrameScheduling = require('ReactDOMFrameScheduling');
|
||||
var ReactDOMClientInjection = require('ReactDOMClientInjection');
|
||||
var ReactDOMInjection = require('ReactDOMInjection');
|
||||
var ReactGenericBatching = require('ReactGenericBatching');
|
||||
var ReactFiberReconciler = require('ReactFiberReconciler');
|
||||
@@ -64,6 +65,7 @@ if (__DEV__) {
|
||||
var {updatedAncestorInfo} = validateDOMNesting;
|
||||
}
|
||||
|
||||
ReactDOMClientInjection.inject();
|
||||
ReactDOMInjection.inject();
|
||||
ReactControlledComponent.injection.injectFiberControlledHostComponent(
|
||||
ReactDOMFiberComponent,
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
/**
|
||||
* Copyright 2013-present, 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 ReactDOMClientInjection
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var BeforeInputEventPlugin = require('BeforeInputEventPlugin');
|
||||
var ChangeEventPlugin = require('ChangeEventPlugin');
|
||||
var DOMEventPluginOrder = require('DOMEventPluginOrder');
|
||||
var EnterLeaveEventPlugin = require('EnterLeaveEventPlugin');
|
||||
var EventPluginHub = require('EventPluginHub');
|
||||
var EventPluginUtils = require('EventPluginUtils');
|
||||
var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
|
||||
var ReactDOMComponentTree = require('ReactDOMComponentTree');
|
||||
var ReactDOMEventListener = require('ReactDOMEventListener');
|
||||
var SelectEventPlugin = require('SelectEventPlugin');
|
||||
var SimpleEventPlugin = require('SimpleEventPlugin');
|
||||
|
||||
var alreadyInjected = false;
|
||||
|
||||
function inject() {
|
||||
if (alreadyInjected) {
|
||||
// TODO: This is currently true because these injections are shared between
|
||||
// the client and the server package. They should be built independently
|
||||
// and not share any injection state. Then this problem will be solved.
|
||||
return;
|
||||
}
|
||||
alreadyInjected = true;
|
||||
|
||||
ReactDOMEventListener.setHandleTopLevel(
|
||||
ReactBrowserEventEmitter.handleTopLevel,
|
||||
);
|
||||
|
||||
/**
|
||||
* Inject modules for resolving DOM hierarchy and plugin ordering.
|
||||
*/
|
||||
EventPluginHub.injection.injectEventPluginOrder(DOMEventPluginOrder);
|
||||
EventPluginUtils.injection.injectComponentTree(ReactDOMComponentTree);
|
||||
|
||||
/**
|
||||
* Some important event plugins included by default (without having to require
|
||||
* them).
|
||||
*/
|
||||
EventPluginHub.injection.injectEventPluginsByName({
|
||||
SimpleEventPlugin: SimpleEventPlugin,
|
||||
EnterLeaveEventPlugin: EnterLeaveEventPlugin,
|
||||
ChangeEventPlugin: ChangeEventPlugin,
|
||||
SelectEventPlugin: SelectEventPlugin,
|
||||
BeforeInputEventPlugin: BeforeInputEventPlugin,
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
inject: inject,
|
||||
};
|
||||
@@ -12,20 +12,9 @@
|
||||
'use strict';
|
||||
|
||||
var ARIADOMPropertyConfig = require('ARIADOMPropertyConfig');
|
||||
var BeforeInputEventPlugin = require('BeforeInputEventPlugin');
|
||||
var DOMProperty = require('DOMProperty');
|
||||
var ChangeEventPlugin = require('ChangeEventPlugin');
|
||||
var DOMEventPluginOrder = require('DOMEventPluginOrder');
|
||||
var EnterLeaveEventPlugin = require('EnterLeaveEventPlugin');
|
||||
var EventPluginHub = require('EventPluginHub');
|
||||
var EventPluginUtils = require('EventPluginUtils');
|
||||
var HTMLDOMPropertyConfig = require('HTMLDOMPropertyConfig');
|
||||
var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
|
||||
var ReactDOMComponentTree = require('ReactDOMComponentTree');
|
||||
var ReactDOMEventListener = require('ReactDOMEventListener');
|
||||
var SVGDOMPropertyConfig = require('SVGDOMPropertyConfig');
|
||||
var SelectEventPlugin = require('SelectEventPlugin');
|
||||
var SimpleEventPlugin = require('SimpleEventPlugin');
|
||||
|
||||
var alreadyInjected = false;
|
||||
|
||||
@@ -38,28 +27,6 @@ function inject() {
|
||||
}
|
||||
alreadyInjected = true;
|
||||
|
||||
ReactDOMEventListener.setHandleTopLevel(
|
||||
ReactBrowserEventEmitter.handleTopLevel,
|
||||
);
|
||||
|
||||
/**
|
||||
* Inject modules for resolving DOM hierarchy and plugin ordering.
|
||||
*/
|
||||
EventPluginHub.injection.injectEventPluginOrder(DOMEventPluginOrder);
|
||||
EventPluginUtils.injection.injectComponentTree(ReactDOMComponentTree);
|
||||
|
||||
/**
|
||||
* Some important event plugins included by default (without having to require
|
||||
* them).
|
||||
*/
|
||||
EventPluginHub.injection.injectEventPluginsByName({
|
||||
SimpleEventPlugin: SimpleEventPlugin,
|
||||
EnterLeaveEventPlugin: EnterLeaveEventPlugin,
|
||||
ChangeEventPlugin: ChangeEventPlugin,
|
||||
SelectEventPlugin: SelectEventPlugin,
|
||||
BeforeInputEventPlugin: BeforeInputEventPlugin,
|
||||
});
|
||||
|
||||
DOMProperty.injection.injectDOMPropertyConfig(ARIADOMPropertyConfig);
|
||||
DOMProperty.injection.injectDOMPropertyConfig(HTMLDOMPropertyConfig);
|
||||
DOMProperty.injection.injectDOMPropertyConfig(SVGDOMPropertyConfig);
|
||||
|
||||
Reference in New Issue
Block a user