React官方API:Top-Level API

React

React 是进入React架构的入口。如果你正在使用预先构建好的包,它就是一个全局变量。如果你是用的是CommonJS规范,你就需要 require()它。

React.createClass

function createClass(object specification)
创建一个一定规格的组件。一个组件的实现是靠render方法返回 一个单独的React元素。组件和其它标准的类的扩展不同的唯一原因就是你不需要重复调用。

React.createElement

function createElement(
  string/ReactComponent type,[object props],[children ...]
)

创建并返回一个新的指定规格的ReactElement(而不是组件)。它的type参数可以是一个html标签名,也可以是一个通过React.createClass创建的一个组件。

React.render

ReactComponent render(
  ReactElement element,DOMElement container,[function callback]
)

将一个ReactElement连接到DOM的container中,并且返回一个组件的引用。

如果ReactElement是是在以前就被渲染到container中过,那么再次调用就会更新DOM(只更新与上次改变后不同的地方)。

如果有第三个参数callback,它将会在组件被渲染或者更新后被调用。

注意:React.render()将会替换掉原有容器中的子节点。可能在未来,能实现渲染到组件时不会重写已存在的DOM子节点。

React.unmountComponentAtNode

boolean unmountComponentAtNode(DOMElement container)
直接把当前DOM节点渲染的全部组件移除(包括事件和state),这样能避免内存暴增而导致浏览器崩溃。如果DOM节点中没有被渲染的组件,调用这个函数不会做任何改变。
如果组件是已经被移除的的或是false或是没有组件可以去移除,这个方法返回true。

React.renderToString

string renderToString(ReactElement element)
初始化一个ReactElement的HTML。这个方法只能用在服务器。它会返回一段HTML字符串。你可以在服务器端用这个方法来生成HTMl,并且发送初始请求以加速页面加载,

同时允许搜索引擎去抓取你设计好的SEO页面。

如果此时你调用React.render()渲染一个节点,React将会缓存并且只是给它加上事件,让你有一个非常高效的首次加载体验。

React.isValidElement

boolean isValidElement(* object)
检查对象是否一个ReactElement。

React.DOM

为DOM组件提供了方便的对象(React.createElement创建的对象)包容器。这是在你不使用JSX语法的另一种写法。比如:React.DOM.div(null,'Hello World!')。第一个参数是属性集合的对象。

React.PropTypes

这个方法是为了验证从其它组件传递过来的属性。

React.initialize TouchEvents

initializeTouchEvents(boolean shouldUseTouch)
是否开启移动设备上用React的事件机制来处理触屏事件。

React.Children

React.Children 用来处理 this.props.children 中的复杂数据。

object React.Children.map(object children,function fn [,object context])
例子:
<pre name="code" class="javascript">var App = React.createClass({
  render: function() {
    var children = React.Children.map(this.props.children,function(child,i) {
      child.props.style.width = '100px'
    })
    return (
      <div>{children}</div>
    )
  }
})
  在与 children 相邻的子元素中调用 fn。如果children是一个复杂对象或是一个数组,它将会被遍历: fn 是不会传递容器对象的。 
 

如果children是 null 或 undefined ,它将返回一个 null 或 undefined ,而不是一个空对象。

React.Children.forEach

React.Children.forEach(object children,object context])
用法同React.Children,但是没有返回值。

React.Children.count

number React.Children.count(object children)
返回children中包含的组件数量。

React.Children.only

object React.Children.only(object children)
返回children中仅有的元素。如果子元素数量不唯一,抛出异常。

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...