当前位置: 首页 > news >正文

笔记二十六、React中路由懒加载的扩展使用

26.1 在路由中配置懒加载 lazy

routes/index.jsx

代码

import {Navigate} from "react-router-dom";
import Home from "../components/Home";
import About from "../components/About";
// import Classify from "../components/Home/components/Classify.jsx";
// import Navigation from "../components/Home/components/Navigation.jsx";
import {lazy} from "react";//动态引入路径传入lazy函数
const Classify = lazy(() => import("../components/Home/components/Classify"));
const Navigation = lazy(() => import("../components/Home/components/Navigation"));export default [{path: '/home',element: <Home/>,children: [{path: 'classify',element: <Classify/>},{path: 'navigation',element: <Navigation/>},]},{path: '/about',element: <About/>,},{path: '/',element: <Navigate to='about'/>,}
]

26.2 Home/index.jsx 在父组件中使用 Suspense 

代码

import React, {Suspense} from "react";
import {NavLink, Outlet, useNavigate} from "react-router-dom";const Home = () => {// 类组件中不能用const定义变量// 选中高亮const activeStyle = ({isActive}) => {return isActive ? 'background' : "";};// 编程式路由导航const navigate = useNavigate();const toClassify = () => {navigate('classify', {state: {param_C: 'elendalee', param_D: 20}})};return (<div>首页的页面<div style={{display: "flex", justifyContent: 'center', marginTop: '20px'}}><button onClick={toClassify}>classify</button><NavLink to='navigation' className={activeStyle}>navigation</NavLink></div><div style={{background: 'red'}}>{/*fallback 兜底样式loading...*/}<Suspense fallback={<h2>loading...</h2>}>{/*<!-- Renders the child route's element, if there is one. -->*/}<Outlet/></Suspense></div></div>);}export default Home;

 

 

相关文章:

  • 分享从零开始学习网络设备配置--任务4.3 使用动态路由RIPng实现网络连通
  • 力扣:182. 查找重复的电子邮箱(Python3)
  • 新金融时代、AMCAP谱写财富梦想新篇章
  • 特权FPGA 第二章 笔记
  • 「Verilog学习笔记」数据累加输出
  • WIN10系统自带硬盘测速工具使用
  • 2023.11.28 使用tensorflow进行“三好“权重分析
  • LeetCode(34)有效的数独【矩阵】【中等】
  • 【PyTorch】(三)模型的创建、参数初始化、保存和加载
  • html实现360度产品预览(附源码)
  • 使用electron工具打包web端到PC端应用程序
  • PLC通过lora网关采集温室大棚温湿度数据
  • antDesignPro a-table样式二次封装
  • Redis总结
  • 简历上的工作经历怎么写
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Gradle 5.0 正式版发布
  • idea + plantuml 画流程图
  • If…else
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java方法详解
  • nodejs调试方法
  • quasar-framework cnodejs社区
  • Zsh 开发指南(第十四篇 文件读写)
  • 从0实现一个tiny react(三)生命周期
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 探索 JS 中的模块化
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 一起参Ember.js讨论、问答社区。
  • 运行时添加log4j2的appender
  • 2017年360最后一道编程题
  • Java总结 - String - 这篇请使劲喷我
  • Mac 上flink的安装与启动
  • python最赚钱的4个方向,你最心动的是哪个?
  • 我们雇佣了一只大猴子...
  • #微信小程序:微信小程序常见的配置传值
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)WLAN定义和基本架构转
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)h264中avc和flv数据的解析
  • (转)winform之ListView
  • (转)重识new
  • .bat文件调用java类的main方法
  • .gitignore
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别