加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

React

发布时间:2020-12-15 05:13:50 所属栏目:百科 来源:网络整理
导读:React提供调用接口。包含创建ReactComponent组件、ReactElement元素、校验propsType、操纵props.children等。 'use strict';var _assign = require('object-assign');var ReactChildren = require('./ReactChildren');var ReactComponent = require('./React

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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读