码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 二、【React拓展】懒加载 lazy


    文章目录

    • 1、适用点
    • 2、汇总

    1、适用点

    懒加载往往配合路由一起使用,此处修改的项目是 二、【React-Router5】路由的基本使用 中的项目

    1. 首先从react中引入lazy

      1. import { lazy } from 'react'
    2. 修改引入路由组件的写法

      1. // import About from './pages/About'
        // import Home from './pages/Home'
        const About = lazy(() => import('./pages/About'))
        const Home = lazy(() => import('./pages/Home'))
        
        • 1
        • 2
        • 3
        • 4
      2. 此时你会发现报错了

        1. 在这里插入图片描述

        2. 翻译过来就是

          1. 未捕获错误:响应同步输入时组件挂起。这将导致UI被加载指示符替换。要修复此问题,应使用startTransition包装挂起的更新
        3. 啥意思呢?意思就是需要使用 React 18 新特性:startTransition 进行处理,这里暂时不讨论(注此项小白未验证,后续若有新版笔记可能会做验证,静待后续更新)

        4. 使这里使用 =Suspense== 进行处理

      3. 使用 Suspense 解决问题

        1. 引入 Suspense:import { Suspense } from 'react'

        2. 给注册路由的地方套上,并配置 fallback 展示未加载完成时显示的内容

        3. <Suspense fallback={>加载中...h2>}>
              {/* Route 注册路由 */}
              <Switch>
                  <Route path='/about' component={About} />
                  <Route path='/home' component={Home} />
                  <Redirect to='/about' /> {/* 兜底 */}
              Switch>
          Suspense>
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
        4. fallback 也可以配置成一个加载组件,丰富一下加载页面

    2、汇总

    import { lazy, Suspense } from 'react'
    impot Loding from './components/Loading'
    
    //1.通过React的lazy函数配合import()函数动态加载路由组件 ===> 路由组件代码会被分开打包
    const Login = lazy(()=>import('@/pages/Login'))
    
    //2.通过指定在加载得到路由打包文件前显示一个自定义loading界面
    <Suspense fallback={<Loding/>}>
    	<Switch>
            <Route path="/xxx" component={Xxxx}/>
            <Redirect to="/login"/>
    	</Switch>
    </Suspense>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    网站白屏优化
    Python爬虫_51job案例
    大学生做的停车场预约管理系统,java的技术栈SSM,jsp技术,使用idea开发
    【煤矿虚拟仿真体验】VR采煤机技能培训有效提高训练效果
    NPOI导出千分位带.00格式显示
    PlantUML语法
    【2023_10_22计算机热点知识分享】:人工智能
    菜刀、蚁剑、冰蝎、哥斯拉特征码
    【Hadoop大数据技术】——Sqoop数据迁移(学习笔记)
    Oringin制图之Sci图参数设置
  • 原文地址:https://blog.csdn.net/qq_30769437/article/details/128130671
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号