zoukankan      html  css  js  c++  java
  • react-loadable 实现路由懒加载

    安装依赖:

    yarn add react-loadable
    

    创建通用工具类:

    src/util/loadable.js

    /*路由懒加载(异步组件)*/
    import React from 'react';
    import Loadable from 'react-loadable';
    
    //通用的过场组件
    const LoadingComponent =()=>{
        return (
            <div>loading</div>
        ) 
    }
    
    //过场组件默认采用通用的,若传入了loading,则采用传入的过场组件
    export default (loader,loading = LoadingComponent)=>{
        return Loadable({
            loader,
            loading
        });
    }
    

    router里面调用方式改为如下

    /*配置路由*/
    import React, { Fragment } from 'react'
    import { BrowserRouter, Route } from 'react-router-dom'
    import loadable from '../util/loadable'
    
    const Home = loadable(()=>import('@pages/home'))
    
    const Routes = () => (
        <BrowserRouter>
            <Route path="/home" component={Home}/>
        </BrowserRouter>
    );
    
    export default Routes
    

    封装之后,laodable只需写一次,改变的只是组件的引入方式,这样一来就方便多了,

    react-loadable是以组件级别来分割代码的,这意味着,我们不仅可以根据路由按需加载,还可以根据组件按需加载,使用方式和路由分割一样,只用修改组件的引入方式即可

  • 相关阅读:
    HDU 5585 Numbers
    HDU 3308 LCIS
    POJ 2991 Crane
    POJ 1436 Horizontally Visible Segments
    POJ 3667 Hotel
    HaiHongOJ 1003 God Wang
    【SDOI 2008】 递归数列
    5月19日省中提高组题解
    【HDU 1588】 Gauss Fibonacci
    【POJ 3233】Matrix Power Series
  • 原文地址:https://www.cnblogs.com/crazycode2/p/12210778.html
Copyright © 2011-2022 走看看