React 深度学习:React Core
使用 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
转载于:https://juejin.im/post/5d0ecaecf265da1bab29b7ef
React 深度学习:React Core相关推荐
- NVIDIA深度学习Tensor Core性能解析(下)
NVIDIA深度学习Tensor Core性能解析(下) DeepBench推理测试之RNN和Sparse GEMM DeepBench的最后一项推理测试是RNN和Sparse GEMM,虽然测试中可 ...
- NVIDIA深度学习Tensor Core性能解析(上)
NVIDIA深度学习Tensor Core性能解析(上) 本篇将通过多项测试来考验Volta架构,利用各种深度学习框架来了解Tensor Core的性能. 很多时候,深度学习这样的新领域会让人难以理解 ...
- React 深度学习:ReactFiberLazyComponent
path: packages/react-reconciler/src/ReactFiberLazyComponent.js resolveDefaultProps 解析默认 props export ...
- React 深度学习:ReactFiber
packages/react-reconciler/src/ReactFiber.js Fiber // A Fiber is work on a Component that needs to be ...
- React 深度学习:invariant
path: packages/shared/invariant.js 源码 /*** 根据条件抛出固定格式的错误,允许使用 %s 作为变量的占位符* * @param condition* @para ...
- React的学习路径——从菜鸟到大牛
如果你之前从未接触过React,你可能会对它的生态感到一头雾水.这可以理解,因为: 1.React针对的是接受能力强的开发者和行业专家: 2.Facebook仅将它实际生产中应用的框架开源了出来,因此 ...
- Halcon20.11深度学习版安装与配置
参考资料:https://www.51halcon.com/thread-4476-1-1.html 提示: Deep Learning版本安装前提是必须安装了Full Version或Runtime ...
- 为什么我们放弃了 Vue?Vue 和 React 深度对比
我使用 Vue 和 React 已经很长一段时间了,两个框架上实践代码量都在 10 万行以上.不得不说两者都是很 nice 的,帮助开发者减少很多工作量,这类框架是现代化前端开发必备的.然而 Vue ...
- 学习 React 17 系统精讲 结合TS打造旅游电商平台
React 17 系统精讲 结合TS打造旅游电商平台 2-2 [环境搭建]开始我们的第一个React项目 2-3 [项目启动]使用create-react-app快速搭建React 2-5 [Type ...
- 为什么我们放弃了Vue?Vue和React深度比较
我使用Vue和React已经很长一段时间了,两个框架上实践代码量都在10万行以上.不得不说都是都很不错的,帮助开发者减少很多工作量,某种框架是现代化Vue和React在两者之间的选择并不像选择苹果或香 ...
最新文章
- 使用Pixel Bender Toolkit制作特效——多像素采样(Part 4)
- Loonframwork到SWT的移植测试(JAVA GAME TEST SOURCE)
- 摘:设置向文件中的输出格式
- 信息学复赛用linux,NOIP/CSPJ 复赛中noilinux里的atbiter测评机的使用(附数据)
- Android伍什小随笔(二)- 更新中
- android super this区别
- tomcat的安装及配置
- iOS:位置相关(18-03-09更)
- Spring boot 源码:Bean的Scope
- 算法:移除数组中的数字,不用额外空间27. Remove Element
- Windows Server AppFabric 简介
- Android网络框架情景分析之NetworkManagementService和Netd交互深入分析一
- 避免侵权,你应该必备免费可商用的素材网站
- python计算平均值画折线图_【中年阿姨python入门】绘制折线图
- 一梦江湖获取服务器信息一直获取不出来,一梦江湖手游4月10日更新汇总-一梦江湖手游4月10日更新内容有哪些_牛游戏网...
- 在wget中指定代理服务器
- linux设置网卡接受组播,linux下双网卡接收组播需要修改的参数
- Score-based diffusion models for accelerated MRI
- 全国地名点地统计模式分析
- 中国联通:2018年7月沃指数之移动应用APP排行榜