//组件第一次初始化的时候加载.
import React, {PropTypes} from 'react';

//import AppComposer from './views/App/AppComposer';
//import LoginComposer from './views/Login/LoginComposer';
//import HomeComposer from './views/Home/HomeComposer';
//import WatchListComposer from './views/WatchList/WatchListComposer';
//import SystemLogComposer from './views/SystemLog/SystemLogComposer';
//import TeamManageComposer from './views/TeamManage/TeamManageComposer';
//import {UserQueryPage} from './views/UserQuery/UserQueryComposer';
//import ClosedCaseComposer from './views/ClosedCase/ClosedCaseComposer';
//import AccountInfoComposer from './views/AccountInfo/AccountInfoComposer'; function createLazyLoadComponent(doLoadComponent){
return class newClassComponent extends React.Component{ constructor(){
super(...arguments);
this.state = {
RealComponent : null
};
} componentDidMount(){
//组件第一次初始化的时候加载.
doLoadComponent((pageComponent)=>{
this.setState({
RealComponent:pageComponent
});
});
} render(){
var {RealComponent} = this.state;
var props = this.props;
if (RealComponent){
return <RealComponent {...props} />
}
return <div>loading...</div>
}
}
} export const LoginComposer = createLazyLoadComponent((onLoadCallback)=>{
require(['./views/Login/LoginComposer'], onLoadCallback);
}); export const HomeComposer = createLazyLoadComponent((onLoadCallback)=>{
require(['./views/Home/HomeComposer'], onLoadCallback);
}); export const WatchListComposer = createLazyLoadComponent((onLoadCallback)=>{
require(['./views/WatchList/WatchListComposer'], onLoadCallback);
}); export const SystemLogComposer = createLazyLoadComponent((onLoadCallback)=>{
require(['./views/SystemLog/SystemLogComposer'], onLoadCallback);
}); export const TeamManageComposer = createLazyLoadComponent((onLoadCallback)=>{
require(['./views/TeamManage/TeamManageComposer'], onLoadCallback);
}); export const ClosedCaseComposer = createLazyLoadComponent((onLoadCallback)=>{
require(['./views/ClosedCase/ClosedCaseComposer'], onLoadCallback);
}); export const AccountInfoComposer = createLazyLoadComponent((onLoadCallback)=>{
require(['./views/AccountInfo/AccountInfoComposer'], onLoadCallback);
}); export const UserQueryPage = createLazyLoadComponent((onLoadCallback)=>{
require(['./views/UserQuery/UserQueryComposer'], ({UserQueryPage})=>{
onLoadCallback(UserQueryPage);
});
});

React 懒加载组件的更多相关文章

  1. 【react懒加载组件】--react-lazyload

    组件安装: npm install react-lazyload --save-dev 组件使用: //引入 import LazyLoad from 'react-lazyload'; //rend ...

  2. jQuery.imgLazyLoad图片懒加载组件

    一.前言 当一个页面中请求的图片过多,而且图片太大,页面访问的速度是非常慢的,对用户的体验非常不友好:使用图片懒加载,可以减轻服务器的压力,增加页面的访问量,这里主要是总结一下我自己写的图片懒加载组件 ...

  3. 带加载进度的Web图片懒加载组件Lazyload

    在Web项目中,大量的图片应用会导致页面加载时间过长,浪费不必要的带宽成本,还会影响用户浏览体验. Lazyload 是一个文件大小仅4kb的图片懒加载组件(不依赖其它第三方库),组件会根据用户当前浏 ...

  4. vue-cli按需加载,懒加载组件

    vue来做一个单页面应用,当我们的项目越来越大,组件越来越多的时候,首次启动项目户特别慢,就算做一个加载框,蒙层之类的,体验也不会好,这个时候就需要按需加载 1.什么叫按需加载 所谓按需加载,顾名思义 ...

  5. react异步加载组件

    1. 创建 asyncComponent 异步加载工具 import React from 'react' function asyncComponent(loadComponent){ class ...

  6. Vue 组件异步加载(懒加载)

    一.vue的编译模式 (1)路由配置信息 //eg1: const MSite = resolve => require.ensure([], () =>resolve(require([ ...

  7. vue2组件懒加载浅析

    vue2组件懒加载浅析 一. 什么是懒加载 懒加载也叫延迟加载,即在需要的时候进行加载,随用随载. 二.为什么需要懒加载 在单页应用中,如果没有应用懒加载,运用webpack打包后的文件将会异常的大, ...

  8. 前端性能优化成神之路--vue组件懒加载(Vue Lazy Component )

    ---恢复内容开始--- 使用组件懒加载的原因 我们先来看看这样的一个页面,页面由大量模块组成,所有模块是同时进行加载,模块中图片内容较多,每个模块的依赖资源较多(包括js文件.接口文件.css文件等 ...

  9. vue组件懒加载

    vue2组件懒加载浅析 一. 什么是懒加载 懒加载也叫延迟加载,即在需要的时候进行加载,随用随载. 二.为什么需要懒加载 在单页应用中,如果没有应用懒加载,运用webpack打包后的文件将会异常的大, ...

随机推荐

  1. Vue的路由动态重定向和导航守卫

    一.重定向 重定向也是通过 routes 配置来完成,下面例子是从 /a 重定向到 /b: const router = new VueRouter({ routes: [ { path: '/a', ...

  2. MySQL--字符集基础

    ========================================================================= 字符集和编码规则 字符集:特定类型或用途的字符集合, ...

  3. tailor+ skipper 实现micro-frontends 简单试用

    tailor 在Mosaic 框架中扮演fragment 模版layout的处理,后端fragment可以用任何服务编写 tailor 主要就是进行layout的处理.tailor的是类似facebo ...

  4. java程序源码

    //Account.java package pers.liqin.accounlist; public class Account { private String accountID; priva ...

  5. 短小而精悍的JsvaScript函数

    1. 回到顶部, 使用浏览器的刷新频率 requestAnimationFrame 来实现的 const scrollToTop = () => { const c = document.doc ...

  6. mysql 的 docker 镜像使用

    mysql 的 docker 镜像使用: 下载镜像: docker pull mysql:8.0.14 运行容器: docker run -it -e MYSQL_ROOT_PASSWORD=mypw ...

  7. TypeScript 之 tsconfig.json

    https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/tsconfig.json.html 如果一个目录下存在一个tsco ...

  8. openstack 开启 spice远程连接

    openstack 默认开的远程控制是novnc 这里是用kolla初建的openstack nova_console vi /etc/kolla/globals.yml ... # Valid op ...

  9. java-plupload上传大文件

    参考链接: https://blog.csdn.net/hjf_1291030386/article/details/74784172 https://www.cnblogs.com/tengyunh ...

  10. LDO与DC-DC

    LDO的功耗可能较低,在430中如果用3.7v锂电池供电,最好用LDO DC-DC功耗较高 其它的区别不大