Refs 转发
Forwarding-Refs
转发 Refs 到 DOM 组件
* React 组件隐藏其实现细节,包括其渲染结果
* 使用 FancyButton 的组件通常不需要获取内部的 DOM 元素 button 的 ref 这可以防止组件过度依赖其他组件的 DOM 结构
* 但是这种封装对高复用的 叶 组件来说是不方便的,这些组件倾向于在整个应用中以一种类似常规 DOM button 和 input 的方式被使用 并且访问其 DOM 节点对管理焦点,选中或动画来说是不可避免的
* Refs 转发是一个可选特性,其允许某些组件接收 ref,并将其向下传递给子组件
```jsx harmony
const FancyButton = React.forwardRef((props, ref) => (
<button ref={ref} className="fancyButton">
{props.children}
</button>
))
// 你可以直接获取 DOM button 的 ref
const ref = React.createRef();
<FancyButton ref={ref}>
Click me!
</FancyButton>组件库维护者的注意事项
在高阶组件 HOC 中转发 refs
最后更新于