ReactElement
这个模块定义了 React 元素的行为和方法,首先看 ReactElement 函数:
ReactElement
1 | var ReactElement = function (type, key, ref, self, source, owner, props) { |
抛去其中 DEV 里面的内容,其他部分很简单,定义了一个 React 元素应有属性。包括: type, key, ref, self, source, owner, props.
还有一个 $$typeof
属性,是一个常量,用来判断这个对象是不是一个 React 元素。
1 | var REACT_ELEMENT_TYPE = |
ReactElement.createElement
1 | ReactElement.createElement = function (type, config, children) { |
用给定的参数来创建一个 React 元素,需要注意的是 ref
和 key
属于保留字段,不能作为 props 的属性传递。
ReactElement.createFactory
一个简单的工厂函数,用来方便的创建同类型的组件。
1 | ReactElement.createFactory = function (type) { |
ReactElement.cloneAndReplaceKey
这个 API 没用过,可以用来替换一个 React 元素的保留属性: key 值。
1 | ReactElement.cloneAndReplaceKey = function (oldElement, newKey) { |
ReactElement.cloneElement
cloneElement 方法和 createElement 基本一样,只是前者是通过现有的 React 元素来复制一个新的元素出来。
ReactElement.isValidElement
用来判断一个对象是不是一个合法的 React 元素。
1 | ReactElement.isValidElement = function (object) { |
用到了上面一开始定义的 $$typeof 属性。
export
1 | module.exports = ReactElement; |
ReactElement 模块就是这么些东西了,主要定义了一个 React 元素应有的属性,以及操作元素的一些方法。