react路由懒加载

本文介绍了两种React路由的懒加载方法。方法一利用React.lazy和import()动态加载组件,并结合Suspense组件实现加载时的优雅降级,通过设置fallback属性展示加载指示器。方法二则提供了另一种懒加载的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:

  • React.lazy 接受一个函数,这个函数需要动态调用 import()。它必须返回一个 Promise,该 Promise 需要 resolve 一个 default export 的 React 组件
  • 然后应在 Suspense 组件中渲染 lazy 组件,如此使得我们可以使用在等待加载 lazy 组件时做优雅降级(如 loading 指示器等)
  • fallback 属性接受任何在组件加载过程中你想展示的 React 元素。你可以将 Suspense 组件置于懒加载组件之上的任何位置。你甚至可以用一个 Suspense 组件包裹多个懒加载组件
    import { Suspense, lazy } from "react"
    const Main = React.lazy(() => import("./main"))
    <Router>
        <Suspense fallback={<div>Loading...</div>}>
            <Route path="/main" component={Main}></Route>{/*路由懒加载*/}
        </Suspense>
    </Router>

方法二:

//utils文件夹新建文件 LazyLoad .js

//安装插件 cnpm i react-loadable -S 
import Loadable from 'react-loadable';

const LoadingComponent = () => {
    return (
        <div>
            loading...路由懒加载 需要这个组件的时候才去加载
        </div>
    )
}

//loading加载组件       loader 需要懒加载的组件
export default (loader, loading = LoadingComponent) => {
    return Loadable({
        loader,
        loading
    })
}
//路由出口文件
import LazyLoad from "./utils/LazyLoad.js"
<Switch>
	<Route path="/main" component={ LazyLoad( ()=>import( "./main"))}</Route>
</Switch >
            


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值