189 words
1 minutes
An Overview of React Source Code - The Entry File
This series of articles is based on the latest version of React: 16.0.0-beta.5.
First, let’s look at the entry file ReactEntry.js
:
var ReactBaseClasses = require("ReactBaseClasses");
var ReactChildren = require("ReactChildren");
var ReactElement = require("ReactElement");
var ReactVersion = require("ReactVersion");
var onlyChild = require("onlyChild");
Dependent Modules:
- ReactBaseClasses
- ReactChildren
- ReactElement
- onlyChild
- ReactElementValidator Next:
var createElement = ReactElement.createElement;
var createFactory = ReactElement.createFactory;
var cloneElement = ReactElement.cloneElement;
if (__DEV__) {
var ReactElementValidator = require("ReactElementValidator");
createElement = ReactElementValidator.createElement;
createFactory = ReactElementValidator.createFactory;
cloneElement = ReactElementValidator.cloneElement;
}
We can see that component validation is provided in the development environment.
var React = {
Children: {
map: ReactChildren.map,
forEach: ReactChildren.forEach,
count: ReactChildren.count,
toArray: ReactChildren.toArray,
only: onlyChild,
},
Component: ReactBaseClasses.Component,
PureComponent: ReactBaseClasses.PureComponent,
unstable_AsyncComponent: ReactBaseClasses.AsyncComponent,
createElement: createElement,
cloneElement: cloneElement,
isValidElement: ReactElement.isValidElement,
createFactory: createFactory,
version: ReactVersion,
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
ReactCurrentOwner: require("ReactCurrentOwner"),
},
};
These are all the APIs provided by React. In subsequent articles, I will interpret the implementation of these APIs one by one.
Related Articles
- {% post_link react-source-code-analyze-1 React Source Code Analysis - Entry File %}
- {% post_link react-source-code-analyze-2 React Source Code Analysis - ReactBaseClasses %}
- {% post_link react-source-code-analyze-3 React Source Code Analysis - ReactChildren %}
- {% post_link react-source-code-analyze-4 React Source Code Analysis - ReactElement %}
- {% post_link react-source-code-analyze-5 React Source Code Analysis - onlyChildren %}
This article was published on September 21, 2017 and last updated on September 21, 2017, 2937 days ago. The content may be outdated.
An Overview of React Source Code - The Entry File
https://blog.kisnows.com/en-US/2017/09/21/react-source-code-analyze-1/