当前位置:首页 > React

react如何实现逻辑复用

2026-03-10 17:28:38React

实现逻辑复用的方法

高阶组件(HOC)
通过函数接收组件并返回新组件的方式复用逻辑。例如,一个权限校验的高阶组件可以包裹多个需要鉴权的页面组件,统一处理权限逻辑。

function withAuth(WrappedComponent) {
  return function(props) {
    const isAuthenticated = checkAuth();
    return isAuthenticated ? <WrappedComponent {...props} /> : <Redirect to="/login" />;
  };
}

自定义Hook
将可复用的状态逻辑提取为Hook。适合处理表单逻辑、数据获取等场景。自定义Hook必须以use开头命名。

function useFetch(url) {
  const [data, setData] = useState(null);
  useEffect(() => {
    fetch(url).then(res => res.json()).then(setData);
  }, [url]);
  return data;
}
// 使用:const userData = useFetch('/api/user');

Render Props
通过组件属性传递渲染函数,共享组件间的代码。适用于动态渲染内容或依赖注入的场景。

<DataProvider render={data => <ChildComponent data={data} />} />

Context API
跨层级组件共享全局状态或配置。通过Provider提供数据,ConsumeruseContext消费数据。

const ThemeContext = createContext('light');
function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Toolbar />
    </ThemeContext.Provider>
  );
}

组合组件
通过组件组合而非继承实现复用。例如将业务逻辑拆分为多个原子组件,通过props控制行为。

react如何实现逻辑复用

function Toggle({ children }) {
  const [on, setOn] = useState(false);
  return children({ on, toggle: () => setOn(!on) });
}
// 使用:<Toggle>{({ on, toggle }) => <Button onClick={toggle}>{on ? 'ON' : 'OFF'}</Button>}</Toggle>

选择建议

  • UI逻辑复用:优先使用组合组件或Render Props
  • 状态逻辑复用:自定义Hook或Context API
  • 横切关注点(如鉴权、日志):高阶组件
  • 复杂全局状态:Context API配合useReducer

每种方案各有适用场景,实际项目中常组合使用。例如用Context共享主题,用Hook封装数据请求,用HOC增强组件能力。

分享给朋友:

相关文章

vue如何实现原理

vue如何实现原理

Vue 的核心实现原理 Vue 的核心原理主要包括响应式系统、虚拟 DOM、模板编译和组件化。以下分模块详细说明其实现机制。 响应式系统 Vue 2.x 使用 Object.defineProper…

js双击事件如何实现

js双击事件如何实现

实现双击事件的方法 在JavaScript中,可以通过监听dblclick事件或手动检测两次点击的时间间隔来实现双击事件。以下是几种常见的方法: 使用原生dblclick事件 element.add…

如何实现语音react

如何实现语音react

语音识别基础设置 在React中实现语音识别功能通常需要借助浏览器的Web Speech API或第三方库。Web Speech API提供了SpeechRecognition接口,允许应用程序直接访…

前段vue如何实现

前段vue如何实现

Vue 前端实现方法 Vue 是一款流行的前端框架,用于构建用户界面。以下是一些常见的 Vue 实现方法: 组件化开发 Vue 的核心思想是组件化开发。每个组件可以独立封装逻辑、模板和样式,便于复用…

react如何实现分页

react如何实现分页

实现分页的基本思路 在React中实现分页通常需要以下几个核心步骤:管理当前页码状态、计算分页数据、渲染分页控件。以下是一个典型的分页实现方法。 管理分页状态 使用React的useState钩子来…

vue如何实现404

vue如何实现404

实现 Vue 404 页面的方法 在 Vue 中实现 404 页面通常需要结合路由配置和动态路由匹配。以下是几种常见方法: 使用通配符路由匹配 在 Vue Router 配置中,可以通过 * 通配符…