1- import { options } from "../src/util" ;
1+ import { options , Fragment } from "../src/util" ;
22import { Children } from "../src/Children" ;
33import * as eventSystem from "../src/event" ;
44import { PropTypes } from "../src/PropTypes" ;
55import { Component } from "../src/Component" ;
6- import { win as window , inBrowser , document } from "../src/browser" ;
6+ import { win as window , contains as containsNode } from "../src/browser" ;
77import { createClass } from "../src/createClass" ;
88import { cloneElement } from "../src/cloneElement" ;
99import { PureComponent } from "../src/PureComponent" ;
1010import { createElement } from "../src/createElement" ;
11+ import { createContext } from "../src/createContext" ;
1112import { createPortal } from "../src/createPortal" ;
12-
1313import {
1414 render ,
1515 findDOMNode ,
@@ -18,49 +18,45 @@ import {
1818 unstable_renderSubtreeIntoContainer
1919} from "../src/diff" ;
2020
21- var React = {
22- version : "VERSION" ,
23- render,
24- hydrate : render ,
25- options,
26- PropTypes,
27- createPortal,
28- Children,
29- Component,
30- eventSystem,
31- findDOMNode,
32- createClass,
33- createElement,
34- cloneElement,
35- PureComponent,
36- isValidElement,
37- unmountComponentAtNode,
38- unstable_renderSubtreeIntoContainer,
39-
40- createFactory ( type ) {
41- console . warn ( "createFactory is deprecated" ) ; // eslint-disable-line
42- var factory = createElement . bind ( null , type ) ;
43- factory . type = type ;
44- return factory ;
45- }
46- } ;
21+ var React ;
22+ if ( window . React && window . React . options ) {
23+ React = window . React ; //解决引入多个
24+ } else {
25+ React = window . React = window . ReactDOM = {
26+ version : "VERSION" ,
27+ render,
28+ hydrate : render ,
29+ options,
30+ Fragment,
31+ PropTypes,
32+ Children,
33+ createPortal,
34+ createContext,
35+ Component,
36+ eventSystem,
37+ findDOMNode,
38+ createClass,
39+ createElement,
40+ cloneElement,
41+ PureComponent,
42+ isValidElement,
43+ unmountComponentAtNode,
44+ unstable_renderSubtreeIntoContainer,
45+ createFactory ( type ) {
46+ console . warn ( "createFactory is deprecated" ) ; // eslint-disable-line
47+ var factory = createElement . bind ( null , type ) ;
48+ factory . type = type ;
49+ return factory ;
50+ }
51+ } ;
52+ }
4753
4854function isInDocument ( node ) {
4955 if ( ! inBrowser ) {
5056 return false ;
5157 }
5258 return containsNode ( document . documentElement , node ) ;
5359}
54- function containsNode ( a , b ) {
55- if ( b ) {
56- while ( ( b = b . parentNode ) ) {
57- if ( b === a ) {
58- return true ;
59- }
60- }
61- }
62- return false ;
63- }
6460
6561function focusNode ( node ) {
6662 //如果此元素不可见,IE8会抛错
0 commit comments