react18高阶组件

[复制链接]
发表于 2026-2-19 11:43:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 高阶组件的本质上就是函数,担当一个组件作为参数,然后返回一个组件。办理了组件之间怎样横向抽离公共逻辑的题目。类组件之间常使用,函数组件中也可以使用,但更多的时间使用自界说hooks。
高阶组件定名一样平常接纳with开头,它可以将平常组件内部的公勤劳能抽离出来,复用在其被调用的组件上。
 举个例子,需求:每个组件渲染 烧毁的时间打印日志日志
  1. import React, { useEffect } from 'react';
  2. // 定义一个高阶组件
  3. const withLogger = (WrappedComponent) => {
  4.   return (props) => {
  5.     useEffect(() => {
  6.       console.log(`Component ${WrappedComponent.name} is mounted.`);
  7.       return () => {
  8.         console.log(`Component ${WrappedComponent.name} is going to unmount.`);
  9.       };
  10.     }, []);
  11.     return <WrappedComponent {...props} />;
  12.   };
  13. };
  14. // 使用高阶组件增强函数组件
  15. const MyComponent = () => {
  16.   return <div>My Component</div>;
  17. };
  18. const EnhancedComponent = withLogger(MyComponent);
  19. // 渲染增强后的组件
  20. const App = () => {
  21.   return (
  22.     <div>
  23.       <EnhancedComponent />
  24.     </div>
  25.   );
  26. };
  27. export default App;
复制代码
特殊注意:
1.高阶函数内部起首return了一个组件,然后这个组件中return了视图 而且转达了props
2.不要在render中使用高阶组件
3.不要在高阶组件内部更改传入的组件
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表