马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
高阶组件的本质上就是函数,担当一个组件作为参数,然后返回一个组件。办理了组件之间怎样横向抽离公共逻辑的题目。类组件之间常使用,函数组件中也可以使用,但更多的时间使用自界说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.不要在高阶组件内部更改传入的组件
|