React 的 Render Props 是一种在组件间共享代码的技巧,它允许你将渲染逻辑从组件中分离出来,并传递给其他组件。
使用 Render Props
Render Props 允许你将渲染逻辑从组件中分离出来,并将其传递给其他组件。这种方式使得组件之间的逻辑复用更加灵活。
定义 Render Props 组件 首先,定义一个 Render Props 组件,它接收一个函数作为 prop,该函数负责渲染内容。
function RenderPropsComponent({ render }) { return <div>{render()}</div>; }
使用 Render Props 在父组件中,将 Render Props 组件作为子组件使用,并传递一个函数作为 prop。
function ParentComponent() { return ( <RenderPropsComponent render={() => <h1>Hello, World!</h1>} /> ); }
优点
- 提高组件复用性
- 使组件更加解耦
- 易于测试
示例
假设我们有一个组件需要根据用户状态显示不同的内容,我们可以使用 Render Props 来实现。
function UserStatusComponent({ renderOnline, renderOffline }) {
const isOnline = true; // 假设用户在线
return isOnline ? renderOnline() : renderOffline();
}
function ParentComponent() {
return (
<UserStatusComponent
renderOnline={() => <h1>用户在线</h1>}
renderOffline={() => <h1>用户离线</h1>}
/>
);
}
扩展阅读
想要了解更多关于 React 的 Render Props,可以阅读官方文档:React Render Props
React Logo