React提供调用接口。包含创建ReactComponent组件、ReactElement元素、校验propsType、操纵props.children等。
'use strict';
var _assign = require('object-assign');
var ReactChildren = require('./ReactChildren');
var ReactComponent = require('./ReactComponent');
var ReactPureComponent = require('./ReactPureComponent');
var ReactClass = require('./ReactClass');
var ReactDOMFactories = require('./ReactDOMFactories');
var ReactElement = require('./ReactElement');
var ReactPropTypes = require('./ReactPropTypes');
var ReactVersion = require('./ReactVersion');
// 校验传参是否单个ReactElement
var onlyChild = require('./onlyChild');
// warning(condition,format) condition为否值,替换format中的"%s",并console.error警告
var warning = require('fbjs/lib/warning');
var createElement = ReactElement.createElement;
var createFactory = ReactElement.createFactory;
var cloneElement = ReactElement.cloneElement;
if (process.env.NODE_ENV !== 'production') {
var ReactElementValidator = require('./ReactElementValidator');
createElement = ReactElementValidator.createElement;
createFactory = ReactElementValidator.createFactory;
cloneElement = ReactElementValidator.cloneElement;
}
var __spread = _assign;
if (process.env.NODE_ENV !== 'production') {
var warned = false;
__spread = function () {
process.env.NODE_ENV !== 'production' ?
warning(warned,'React.__spread is deprecated and should not be used. Use '
+ 'Object.assign directly or another helper function with similar '
+ 'semantics. You may be seeing this warning due to your compiler. '
+ 'See https://fb.me/react-spread-deprecation for more details.') : void 0;
warned = true;
return _assign.apply(null,arguments);
};
}
var React = {
// Modern
// 操纵类props.children等ReactNode集合的props属性,可以是单个ReactNode或嵌套数组形式的多个ReactNode
Children: {
map: ReactChildren.map,// 对ReactNode集合内的ReactNode执行遍历函数,并返回新的ReactNode
forEach: ReactChildren.forEach,// 只对ReactNode集合内的ReactNode执行遍历函数
count: ReactChildren.count,// 统计ReactNode集合中包含ReactNode的个数
toArray: ReactChildren.toArray,// 将嵌套式的ReactNode集合转化为扁平化的ReactNode数组
only: onlyChild// 校验传参是否单个ReactElement
},Component: ReactComponent,// 继承后创建React用户自定义组件
PureComponent: ReactPureComponent,// 继承后创建React用户自定义纯组件pureComponent,浅比较props变更
createElement: createElement,// 创建ReactELement
cloneElement: cloneElement,// 克隆ReactELement,改变部分属性
isValidElement: ReactElement.isValidElement,// 校验传参是否ReactElement
// Classic
PropTypes: ReactPropTypes,// 提供propsType、contextType、childContextType的校验函数
createClass: ReactClass.createClass,// 创建React用户自定义组件,详细约定了部分组件实例方法的定义状况
createFactory: createFactory,// 提供创建ReactELement的工厂函数,该工厂函数预先设置ReactELement关联的组件
createMixin: function (mixin) {
return mixin;
},DOM: ReactDOMFactories,// React封装的Dom组件
version: ReactVersion,// 版本号
__spread: __spread// 不再使用的方法
};
module.exports = React;
