react react-loadable异步组件(按需加载组件)

1、引入
	cnpm install --save react-loadable
	
2、使用

	import React from 'react';
	import Loadable from 'react-loadable';
	
	const LoadableComponent = Loadable({
	  loader: () => import('需要加载的异步组件路径'),
	  loading(){
	      return 加载过程中显示的内容
	  },
	});
	
	export default ()=><LoadableComponent />
	
3、将原本路由组件替换成改异步组件
	将原本导入的组件换成该组件即可
	
4、若原本路由组件使用了路由的属性(props.history等)
	在换成异步组件的时候,本身要使用withRouter导入路由组件的属性
	因为现在的路由组件是异步组件

代码示例:
异步组件集合:

import {Loading} from '../components'
import Loadable from 'react-loadable'


const Dashboard=Loadable({
    loader:()=>import('./Dashboard'),
    loading:Loading
})
const Login=Loadable({
    loader:()=>import('./Login'),
    loading:Loading
})

const NotFound=Loadable({
    loader:()=>import('./NotFound'),
    loading:Loading
})

const Settings=Loadable({
    loader:()=>import('./Settings'),
    loading:Loading
})

const ArticleList=Loadable({
    loader:()=>import('./Article'),
    loading:Loading
})

const ArticleEdit=Loadable({
    loader:()=>import('./Article/Edit'),
    loading:Loading
})



export {
    Dashboard,
    Login,
    NotFound,
    Settings,
    ArticleEdit,
    ArticleList
}

路由文件中使用异步组件:

import {
    Dashboard,
    Login,
    NotFound,
    Settings,
    ArticleEdit,
    ArticleList
} from '../views'

export const mainRouter=[
    {
        pathname:'/login',
        component:Login,
    },
    {
        pathname:'/404',
        component:NotFound,
    }
]

export const adminRouter=[
    {
        pathname:'/admin/dashboard',
        component:Dashboard,
    },
    {
        pathname:'/admin/settings',
        component:Settings,
    },
    {
        pathname:'/admin/article',
        component:ArticleList,
        exact:true
    },
    {
        pathname:'/admin/article/edit/:id',
        component:ArticleEdit,
    },

]
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值