React组件API
组件API这里将介绍7种:
- 设置状态:setState
- 替换状态:replaceState
- 设置属性:setProps
- 替换属性:replaceProps
- 强制更新:forceUpdate
- 获取DOM节点:findDOMNode
- 判断组件挂载状态:isMounted
设置状态:setState
setState(object nextState[,function collback])
nextState:简要设置的新状态,会和当前的state合并
callback:可选参数,回调函数。会在setState设置成功且组件重新渲染后调用。
注意:
不能再组件内部通过this.state修改状态,因为改状态会在调用setState()后被替换。
替换状态:replaceState
replaceState(object nextState[, function callback])
nextState:将要设置的新状态,会替换当前的state(只会保留nextState中的状态,原state中不在nextState中的状态会被删除)
callback:可选参数,会在方法设置成功且组件重新渲染后调用
设置属性:setProps
setProps(object nextProps[, function callback])
nextProps:将要设置的新属性,改状态会与当前props合并
callback:可选参数,设置成功且组件渲染后调用。
替换属性:replaceProps
replaceProps(object nextProps[,function calback])
nextProps:将要设置的新属性,该属性会替换当前的props(删除原有的)
callback:可选参数,成功且渲染后调用
强制更新:forceUpdate
forceUpdate([function callback])
callback:可选参数,该函数会在组件render()方法调用后调用。
注:
forceUpdate()方法会使组件调用自身render()方法重新渲染组件,组件的子组件也会调用自己的render()。但是组件重新渲染使,也让会读取this.props和this.state,如果状态没有改变,那么React只会更新DOM
forceUpdate()方法适用于this.props和this.state之外的组件重绘
尽量不要使用该方法
获取DOM节点:findDOMNode
DOMElement findDOMNode()
返回DOM元素DOMElement
如果组件已经挂载到DOM中,该方法返回对应的本地浏览器DOM元素,当render返回null或false时,this.findDOMNode()也会返回null
判断组件在挂载状态:isMounted
boolean isMounted()
返回true或false,表示组件是否已经挂载到DOM中
可以使用该方法保证setState()和forceUpdate()在异步状态下的调用不会出错。
本文参考 菜鸟网React组件API