Yapei Li

专注于前端领域

0%

React 重要API

1、defaultProps 用来设置类的默认 props
2、forceUpdate() 强制渲染组件
3、cloneElement() 克隆并返回一个新的 React 元素
4、isValidElement() 验证对象是否是一个 React 元素
5、unmountComponentAtNode() 从 DOM 中移除已装载的 React 组件
6、findDOMNode() 用于访问真实 DOM 节点的接口

API

defaultProps 用来设置类的默认 props

1
2
3
4
5
6
7
class CustomButton extends React.Component {
// ...
}

CustomButton.defaultProps = {
color: 'blue'
};

forceUpdate() 强制渲染组件

调用 forceUpdate() 会导致组件跳过 shouldComponentUpdate() ,直接调用 render()

这将触发子组件的正常生命周期方法,包括每个子组件shouldComponentUpdate() 方法

尽量避免使用 forceUpdate()

1
component.forceUpdate(callback)

cloneElement() 克隆并返回一个新的 React 元素

使用 element 作为起点,克隆并返回一个新的 React 元素。

所产生的元素将具有原始元素props ,新的 props浅层合并

新的子元素将取代现有的子元素, keyref被保留

1
2
3
4
5
React.cloneElement(
element,
[props],
[...children]
)

等效于:

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 返回 nullfalse 时,findDOMNode 将会返回 null

如果组件已经被装载到 DOM 中,这将返回相应的原生浏览器 DOM 元素

findDOMNode 不能用于函数式组件

1
ReactDOM.findDOMNode(component)