您的位置:首页 > 新闻 > 会展 > react18高阶组件

react18高阶组件

2025/2/23 23:12:40 来源:https://blog.csdn.net/m0_69853343/article/details/140638728  浏览:    关键词:react18高阶组件

 高阶组件的本质上就是函数,接受一个组件作为参数,然后返回一个组件。解决了组件之间如何横向抽离公共逻辑的问题。类组件之间常使用,函数组件中也可以使用,但更多的时候使用自定义hooks。

高阶组件命名一般采用with开头,它可以将普通组件内部的公用功能抽离出来,复用在其被调用的组件上。

 举个例子,需求:每个组件渲染 销毁的时候打印日志

import React, { useEffect } from 'react';// 定义一个高阶组件
const withLogger = (WrappedComponent) => {return (props) => {useEffect(() => {console.log(`Component ${WrappedComponent.name} is mounted.`);return () => {console.log(`Component ${WrappedComponent.name} is going to unmount.`);};}, []);return <WrappedComponent {...props} />;};
};// 使用高阶组件增强函数组件
const MyComponent = () => {return <div>My Component</div>;
};const EnhancedComponent = withLogger(MyComponent);// 渲染增强后的组件
const App = () => {return (<div><EnhancedComponent /></div>);
};export default App;

特别注意:

1.高阶函数内部首先return了一个组件,然后这个组件中return了视图 并且传递了props

2.不要在render中使用高阶组件

3.不要在高阶组件内部更改传入的组件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com