`

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;

 

0
0
分享到:
评论

相关推荐

    React-Developer Tools-3.6.0.zip 适合react v17以下

    React Developer Tools 是一个用于 Chrome 和 Firefox 浏览器的浏览器扩展,它为 React 开发者提供了一套强大的工具,用于调试和分析 React 应用程序。React Developer Tools 3.6.0 是 React 开发者工具的一个特定...

    react移动端项目构建,react@18.2.0+react-vant+vite+axios+redux+sass

    该架构已解决大部分坑,主要用于react@18.2.0移动端,在使用项目前请确保已安装node、yarn工具,node版本18+,此项目构建主要集成:axios、vant、sass、vite、sass、react V18,其中还会介绍到如何跨页面传递数据、...

    react下的react.min.js和react-dom.js

    React是Facebook开发的一个用于构建用户界面的JavaScript库,尤其适合构建单页应用(SPA)。它主要关注视图层,但也可以与其他库或框架配合使用,形成完整的MVC(模型-视图-控制器)架构。在React生态系统中,`react...

    React视频教学02

    react技术最新开发 视频讲解 后续还有深入讲解 详细 通俗易懂 react技术最新开发 视频讲解 后续还有深入讲解 详细 通俗易懂 react技术最新开发 视频讲解 后续还有深入讲解 详细 通俗易懂 react技术最新开发 视频讲解...

    React中文文档.zip

    React 是一个 Facebook 和 Instagram 用来创建用户界面的 JavaScript 库。 很多人认为 React 是 MVC 中的 V(视图)。 我们创造 React 是为了解决一个问题:构建随着时间数据不断变化的大规模应用程序。为了达到这...

    react.js、react-dom.js、babel.js文件包下载

    React.js、react-dom.js和babel.js是开发基于React的应用程序时不可或缺的JavaScript库和工具。在深入探讨这些文件之前,让我们先理解React的基本概念。React是由Facebook开发的一个用于构建用户界面的JavaScript库...

    React小书(完整版)1

    《React小书(完整版)1》是一本专注于React.js技术的开源入门书籍,由作者在工作中积累的经验和知识整理而成。这本书旨在帮助有一定前端基础,但对React.js尚无了解或初学者掌握React.js的核心概念和技术,并将其...

    react开发所需要的所有包

    React是JavaScript库,用于构建用户界面,特别是单页应用程序(SPA)。它采用组件化的方式,使得构建可重用和可维护的代码变得容易。在React的开发过程中,我们需要依赖一些核心库和其他辅助库来实现完整的功能。这...

    React中文入门教程 pdf 下载

    ### React中文入门教程知识点概述 #### 一、React概览 **React** 是一个用于构建用户界面的JavaScript库,特别适合于构建复杂且交互频繁的Web应用。React的核心优势在于其虚拟DOM技术,使得更新界面变得高效且流畅...

    《React: Tools & Resources》- 2017 英文原版

    This book is a collection of in-depth guides to some some of the tools and resources most used with React, such as Jest and React Router, as well as a discussion about how React works well with D3, ...

    React资料配合B站尚硅谷教程

    React是Facebook推出的一款开源JavaScript库,用于构建用户界面,尤其是单页应用(SPA)。它采用组件化开发方式,使得UI的构建更为模块化,易于维护和扩展。尚硅谷是一家知名的在线教育平台,提供了丰富的编程教程,...

    Learning React (2nd Edition)

    Learning React A hands-on guide to building web applications using React and Redux As far as new web frameworks and libraries go, React is quite the runaway success. It not only deals with the most ...

    react+redux+router完整实践项目案例源码

    在本项目中,"react+redux+router完整实践项目案例源码" 提供了一个全面的教程,涵盖了使用React、Redux和React Router进行Web应用开发的关键技术。这些技术都是现代前端开发的重要组成部分,尤其是在构建单页面应用...

    元宇宙初探React+Three.js制作3D全景漫游.zip

    元宇宙初探React+Three.js制作3D全景漫游.zip元宇宙初探React+Three.js制作3D全景漫游.zip元宇宙初探React+Three.js制作3D全景漫游.zip元宇宙初探React+Three.js制作3D全景漫游.zip元宇宙初探React+Three.js制作3D...

    React开发实战完整版,直接下载

    React是Facebook推出的一款开源JavaScript库,用于构建用户界面,尤其是单页应用(SPA)。它采用组件化开发方式,使得UI代码可复用性极高,提高了开发效率和代码质量。本资源"React开发实战完整版"提供了全面的学习...

    ky-react-multiple 基于react+webpack的多页应用.zip

    ky-react-multiple 基于react+webpack的多页应用.zipky-react-multiple 基于react+webpack的多页应用.zipky-react-multiple 基于react+webpack的多页应用.zipky-react-multiple 基于react+webpack的多页应用.zipky-...

    react+antd搭建后台管理框架

    react+antd搭建前端管理框架(***支持响应式***),主要模块分为:菜单、选项卡、面包屑;通过路由监听,实现三个模块之间的联动(同时监听浏览器);状态采用react-redux进行集中管理。目前只包含前端代码,未与...

    目前超流行的跨平台移动应用开发框架-React-Native项目实战 从React到React-Native

    ├─1113_AM_React-basic-1.mp4 ├─1113_AM_React-basic-2.mp4 ├─1113_AM_React-basic-4.mp4 ├─1113_PM_React-basic-3.mp4 ├─1114_AM_React-basic-5.mp4 ├─1114_AM_React-basic-6.mp4 ├─1114_PM_React-...

    react及react生态知识总结

    对react,react全家桶,react native等的知识点进行汇总

    React学习手册完整版带目录.zip

    React是Facebook推出的一款开源JavaScript库,专门用于构建用户界面,特别是单页应用程序(SPA)。它以其组件化开发、虚拟DOM和声明式编程风格而闻名,是现代Web开发中不可或缺的一部分。"React学习手册完整版带目录...

Global site tag (gtag.js) - Google Analytics