243 文字
1 分
Reactソースコード概要 - エントリファイル
本シリーズの記事では、Reactの最新バージョンである16.0.0-beta.5を基準としています。
まず、エントリファイルであるReactEntry.js
を見てみましょう。
var ReactBaseClasses = require("ReactBaseClasses");
var ReactChildren = require("ReactChildren");
var ReactElement = require("ReactElement");
var ReactVersion = require("ReactVersion");
var onlyChild = require("onlyChild");
依存モジュール:
- ReactBaseClasses
- ReactChildren
- ReactElement
- onlyChild
- ReactElementValidator 次に:
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;
}
ご覧の通り、開発環境ではコンポーネントの検証機能が提供されています。
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"),
},
};
上記がReactが提供するすべてのAPIです。 今後の記事で、これらのAPIの実装について順次解説していきます。
関連記事
- {% post_link react-source-code-analyze-1 Reactソースコード解析 - エントリファイル %}
- {% post_link react-source-code-analyze-2 Reactソースコード解析 - ReactBaseClasses %}
- {% post_link react-source-code-analyze-3 Reactソースコード解析 - ReactChildren %}
- {% post_link react-source-code-analyze-4 Reactソースコード解析 - ReactElement %}
- {% post_link react-source-code-analyze-5 Reactソースコード解析 - onlyChildren %}
この記事は 2017年9月21日 に公開され、2017年9月21日 に最終更新されました。2937 日が経過しており、内容が古くなっている可能性があります。
Reactソースコード概要 - エントリファイル
https://blog.kisnows.com/ja-JP/2017/09/21/react-source-code-analyze-1/