1、defaultProps 用来设置类的默认 props
2、forceUpdate() 强制渲染组件
3、cloneElement() 克隆并返回一个新的 React 元素
4、isValidElement() 验证对象是否是一个 React 元素
5、unmountComponentAtNode() 从 DOM 中移除已装载的 React 组件
6、findDOMNode() 用于访问真实 DOM 节点的接口
API
defaultProps 用来设置类的默认 props
1 | class CustomButton extends React.Component { |
forceUpdate() 强制渲染组件
调用
forceUpdate()
会导致组件跳过shouldComponentUpdate()
,直接调用render()
这将
触发
子组件的正常生命周期方法
,包括每个子组件
的shouldComponentUpdate()
方法尽量避免使用
forceUpdate()
1 | component.forceUpdate(callback) |
cloneElement() 克隆并返回一个新的 React 元素
使用
element
作为起点,克隆并返回
一个新的React
元素。所产生的元素将具有
原始元素
的props
,新的props
为浅层合并
。新的子元素将取代现有的子元素,
key
和ref
将被保留
。
1 | React.cloneElement( |
等效于:
1 | <element.type {...element.props} {...props}>{children}</element.type> |
isValidElement() 验证对象是否是一个 React 元素。 返回 true 或 false
1 | React.isValidElement(object) |
unmountComponentAtNode() 从 DOM 中移除已装载的 React 组件
从
DOM
中移除已装载的React
组件,并清除
其事件处理程序
和state
。如果在容器中没有挂载组件,调用此函数什么也不做。
如果组件被卸载,则返回
true
,如果没有要卸载的组件,则返回false
。
1 | ReactDOM.unmountComponentAtNode(container) |
findDOMNode() 用于访问真实 DOM 节点的接口
是一个用于访问真实
DOM
节点的接口。 在大多数情况下,不建议使用它
,因为它会越过组件抽象层访问真实DOM
在严格模式(StrictMode)中
已经被弃用
在大多数情况下,可以绑定一个 ref 到 DOM 节点上,从而避免使用findDOMNode
当
render
返回null
或false
时,findDOMNode
将会返回null
。如果组件已经被装载到
DOM
中,这将返回相应的原生浏览器DOM 元素
findDOMNode 不能用于函数式组件
1 | ReactDOM.findDOMNode(component) |