使用 React 必然会重复如下的代码:

import React from 'react';
复制代码

通过这段代码,我们从 react 的库中导入了 React,那这个 React 中到底包含哪些东西呢?

import ReactVersion from 'shared/ReactVersion';
import {REACT_CONCURRENT_MODE_TYPE,REACT_FRAGMENT_TYPE,REACT_PROFILER_TYPE,REACT_STRICT_MODE_TYPE,REACT_SUSPENSE_TYPE,
} from 'shared/ReactSymbols';import {Component, PureComponent} from './ReactBaseClasses';
import {createRef} from './ReactCreateRef';
import {forEach, map, count, toArray, only} from './ReactChildren';
import {createElement,createFactory,cloneElement,isValidElement,
} from './ReactElement';
import {createContext} from './ReactContext';
import {lazy} from './ReactLazy';
import forwardRef from './forwardRef';
import memo from './memo';
import {useCallback,useContext,useEffect,useImperativeHandle,useDebugValue,useLayoutEffect,useMemo,useReducer,useRef,useState,
} from './ReactHooks';
import {createElementWithValidation,createFactoryWithValidation,cloneElementWithValidation,
} from './ReactElementValidator';
import ReactSharedInternals from './ReactSharedInternals';
import {enableStableConcurrentModeAPIs} from 'shared/ReactFeatureFlags';const React = {Children: {map,forEach,count,toArray,only,},createRef,Component,PureComponent,createContext,forwardRef,lazy,memo,useCallback,useContext,useEffect,useImperativeHandle,useDebugValue,useLayoutEffect,useMemo,useReducer,useRef,useState,Fragment: REACT_FRAGMENT_TYPE,StrictMode: REACT_STRICT_MODE_TYPE,Suspense: REACT_SUSPENSE_TYPE,createElement: __DEV__ ? createElementWithValidation : createElement,cloneElement: __DEV__ ? cloneElementWithValidation : cloneElement,createFactory: __DEV__ ? createFactoryWithValidation : createFactory,isValidElement: isValidElement,version: ReactVersion,unstable_ConcurrentMode: REACT_CONCURRENT_MODE_TYPE,unstable_Profiler: REACT_PROFILER_TYPE,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ReactSharedInternals,
};// Note: some APIs are added with feature flags.
// Make sure that stable builds for open source
// don't modify the React object to avoid deopts.
// Also let's not expose their names in stable builds.if (enableStableConcurrentModeAPIs) {React.ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;React.Profiler = REACT_PROFILER_TYPE;React.unstable_ConcurrentMode = undefined;React.unstable_Profiler = undefined;
}export default React;
复制代码

结构

React Core,结构图如下

链接

  • ReactBaseClasses
  • ReactElement
  • ReactHooks
  • ReactContext
  • ReactCreateRef
  • forwardRef
  • ReactLazy
  • memo
  • Children

React Element:

  • createElement

  • cloneElement

  • createFactory

  • isValidElement

  • ReactElementValidator 用于开发环境

    • createElementWithValidation
    • cloneElementWithValidation
    • createFactoryWithValidation

React Symbol:

  • Fragment
  • StrictMode
  • Suspense

其他:

  • version

上一篇:React 深度学习:1. 结构

转载于:https://juejin.im/post/5d0ecaecf265da1bab29b7ef

React 深度学习:React Core相关推荐

  1. NVIDIA深度学习Tensor Core性能解析(下)

    NVIDIA深度学习Tensor Core性能解析(下) DeepBench推理测试之RNN和Sparse GEMM DeepBench的最后一项推理测试是RNN和Sparse GEMM,虽然测试中可 ...

  2. NVIDIA深度学习Tensor Core性能解析(上)

    NVIDIA深度学习Tensor Core性能解析(上) 本篇将通过多项测试来考验Volta架构,利用各种深度学习框架来了解Tensor Core的性能. 很多时候,深度学习这样的新领域会让人难以理解 ...

  3. React 深度学习:ReactFiberLazyComponent

    path: packages/react-reconciler/src/ReactFiberLazyComponent.js resolveDefaultProps 解析默认 props export ...

  4. React 深度学习:ReactFiber

    packages/react-reconciler/src/ReactFiber.js Fiber // A Fiber is work on a Component that needs to be ...

  5. React 深度学习:invariant

    path: packages/shared/invariant.js 源码 /*** 根据条件抛出固定格式的错误,允许使用 %s 作为变量的占位符* * @param condition* @para ...

  6. React的学习路径——从菜鸟到大牛

    如果你之前从未接触过React,你可能会对它的生态感到一头雾水.这可以理解,因为: 1.React针对的是接受能力强的开发者和行业专家: 2.Facebook仅将它实际生产中应用的框架开源了出来,因此 ...

  7. Halcon20.11深度学习版安装与配置

    参考资料:https://www.51halcon.com/thread-4476-1-1.html 提示: Deep Learning版本安装前提是必须安装了Full Version或Runtime ...

  8. 为什么我们放弃了 Vue?Vue 和 React 深度对比

    我使用 Vue 和 React 已经很长一段时间了,两个框架上实践代码量都在 10 万行以上.不得不说两者都是很 nice 的,帮助开发者减少很多工作量,这类框架是现代化前端开发必备的.然而 Vue ...

  9. 学习 React 17 系统精讲 结合TS打造旅游电商平台

    React 17 系统精讲 结合TS打造旅游电商平台 2-2 [环境搭建]开始我们的第一个React项目 2-3 [项目启动]使用create-react-app快速搭建React 2-5 [Type ...

  10. 为什么我们放弃了Vue?Vue和React深度比较

    我使用Vue和React已经很长一段时间了,两个框架上实践代码量都在10万行以上.不得不说都是都很不错的,帮助开发者减少很多工作量,某种框架是现代化Vue和React在两者之间的选择并不像选择苹果或香 ...

最新文章

  1. 使用Pixel Bender Toolkit制作特效——多像素采样(Part 4)
  2. Loonframwork到SWT的移植测试(JAVA GAME TEST SOURCE)
  3. 摘:设置向文件中的输出格式
  4. 信息学复赛用linux,NOIP/CSPJ 复赛中noilinux里的atbiter测评机的使用(附数据)
  5. Android伍什小随笔(二)- 更新中
  6. android super this区别
  7. tomcat的安装及配置
  8. iOS:位置相关(18-03-09更)
  9. Spring boot 源码:Bean的Scope
  10. 算法:移除数组中的数字,不用额外空间27. Remove Element
  11. Windows Server AppFabric 简介
  12. Android网络框架情景分析之NetworkManagementService和Netd交互深入分析一
  13. 避免侵权,你应该必备免费可商用的素材网站
  14. python计算平均值画折线图_【中年阿姨python入门】绘制折线图
  15. 一梦江湖获取服务器信息一直获取不出来,一梦江湖手游4月10日更新汇总-一梦江湖手游4月10日更新内容有哪些_牛游戏网...
  16. 在wget中指定代理服务器
  17. linux设置网卡接受组播,linux下双网卡接收组播需要修改的参数
  18. Score-based diffusion models for accelerated MRI
  19. 全国地名点地统计模式分析
  20. 中国联通:2018年7月沃指数之移动应用APP排行榜

热门文章

  1. WPF 开发 WebBrowser
  2. 基于卷积神经网络的微表情识别研究需要注意的一些问题【未完待续】
  3. PyTorch中文版官方教程来了,附pdf下载
  4. TensorFlow2.0项目实战:从模型搭建到工业化部署全链路!
  5. 资源 | 有没有必要把机器学习算法自己实现一遍?
  6. 如何自动搜出更好、更小、更快的NLP模型?
  7. 每日算法系列【LeetCode 943】最短超级串
  8. numpy—np.logspace
  9. 你的烂代码终于有了解决方案
  10. Essential C++中文版——满汉全席之外