• react高阶成分(HOC)例子展示


    使用React函数式组件写了一个身份验证的一个功能,示例通过高阶组件实现的一个效果展示:

    1. import React, { useState, useEffect } from 'react';
    2. // 定义一个高阶组件,它接受一个组件作为输入,并返回一个新的包装组件
    3. const withAuthentication = (WrappedComponent) => {
    4. return function WithAuthentication(props) {
    5. const [isAuthenticated, setIsAuthenticated] = useState(false);
    6. // 模拟身份验证过程,实际情况可能需要异步请求服务器验证
    7. useEffect(() => {
    8. // 假设用户已登录
    9. setIsAuthenticated(true);
    10. }, []);
    11. // 根据身份验证状态渲染不同的内容
    12. if (isAuthenticated) {
    13. return <WrappedComponent {...props} />;
    14. } else {
    15. return <p>请先登录p>;
    16. }
    17. };
    18. };
    19. // 创建一个普通的函数式组件
    20. function MyComponent() {
    21. return <div>这是需要身份验证的组件div>;
    22. }
    23. // 使用高阶组件包装MyComponent以添加身份验证功能
    24. const AuthenticatedComponent = withAuthentication(MyComponent);
    25. // 在应用中使用包装后的组件
    26. function App() {
    27. return (
    28. <div>
    29. <h1>我的应用h1>
    30. <AuthenticatedComponent />
    31. div>
    32. );
    33. }
    34. export default App;

    在这个示例中,withAuthentication 是一个高阶组件,它接受一个函数式组件 WrappedComponent 作为参数,并返回一个新的函数式组件 WithAuthentication。在 WithAuthentication 组件内部,我们使用了 useState 和 useEffect 钩子来模拟身份验证过程,并根据身份验证状态渲染不同的内容。

    最后,我们在应用中使用了 AuthenticatedComponent,它是通过高阶组件 withAuthentication 包装过的 MyComponent,从而添加了身份验证功能。

    这是一个适用于React函数式组件的高阶组件示例,可以帮助你在函数式组件中实现类似的功能封装和复用。可以根据自己的需求进行代码测试。

  • 相关阅读:
    电路与数字逻辑期末复习重点整理!!
    寻 友 软 件
    安装node, 配置npm全局安装位置,安装Vue.
    【媒体邀约】媒体宣传——企业成长的催化剂
    Java数组遍历深度解析
    H3CNE-6-ICMP数据包分析
    PyTorch 相关知识介绍
    redis常用操作命令
    目录的权限
    过去将来时习题
  • 原文地址:https://blog.csdn.net/qq_21861771/article/details/134074405