• react-router-dom6 路由懒加载与组件懒加载


    react-router-dom6 路由懒加载与组件懒加载

    本文教学如何配置最新路由的懒加载 以及 组件懒加载

    组件懒加载

    组件引入方式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9ps1oBfc-1660031012499)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9938f1f4b8dc47569113be08ba1f4fa4~tplv-k3u1fbpfcp-watermark.image?)]

    需要用到懒加载的组件:此时我这个组件默认是关闭的,类似于弹窗之类的,就需要最好做一个懒加载

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eLm4lgNq-1660031012501)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c8485df510314ae38655584186a46ee8~tplv-k3u1fbpfcp-watermark.image?)]

    再配置一个过渡组件,就是等待我们懒加载的组件还没过来时运行此组件
    我这边是配置在index.tsx里面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S8Pe2Yyu-1660031012502)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7e789387a3554211aa871367fea29c16~tplv-k3u1fbpfcp-watermark.image?)]

    这样就实现了组件懒加载,在我们需要将该组件懒加载的时候就采用lazy的方式导入即可

    路由懒加载

    有了组件懒加载在index.tsx中配置的过渡组件,我们这同样可以复用
    如果我们不想用也可以自己定制Suspense,嵌套在路由组件前即可如 lztest
    route index.tsx

    import { lazy, Suspense } from "react";
    import { Navigate } from "react-router-dom";
    
    // React 组件懒加载
    const TodoList = lazy(() => import("../commponet/TodoList"));
    const LazyTest = lazy(() => import("../page/LazyTest"));
    
    interface Router {
      name?: string;
      path: string;
      children?: Array;
      element: any;
    }
    
    const routes: Array = [
      {
        path: "/tsdemo",
        element: ,
      },
      {
        path: "/lztest/:name/:age/:sex",
        // element: ,
        element: (
          加载中....}>
            
          
        ),
      },
      {
        path: "/",
        element: ,
      },
    ];
    
    export default routes;
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    测试结果

    先降低网速

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qjy25HiV-1660031012503)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/20e0094287894b388117c06f37fdb16e~tplv-k3u1fbpfcp-watermark.image?)]

    刷新

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U05V7DSv-1660031012505)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/25a57ff3160742caab3d20c1a78c3f48~tplv-k3u1fbpfcp-watermark.image?)]

    点击控制懒加载组件显示
    我们会发现此时会加载一个文件,这个文件就是对应的懒加载文件
    说明我们成功实现了懒加载

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DIwKAAbL-1660031012507)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ffc295415abf4a8499169e7864a1f354~tplv-k3u1fbpfcp-watermark.image?)]

    点击切换路由
    第一个是加载组件的懒加载文件
    第二个是加载路由组件的懒加载文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jpjibHgQ-1660031012512)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cf3b171a2a1b4f8e82596b3ddce6adbc~tplv-k3u1fbpfcp-watermark.image?)]

    成功!

    在这里插入图片描述

  • 相关阅读:
    drools项目中dmn文件调用自定义的java类
    mysql不同隔离级别下锁的实际运用
    Promise解决异步
    二叉树和堆
    java通用xls导出设计
    java中的全局异常捕获
    qt历史数据管理模块(模块化程序)功能块复制直接使用不冲突
    采用html2canvas插件,截取百度地图
    Hadoop FS 文件系统命令
    小程序web-view无法打开该页面的解决方法
  • 原文地址:https://blog.csdn.net/kzj0916/article/details/126249202