//组件第一次初始化的时候加载.
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. BINLOG和REDO/UNDO LOG的区别

    BINLOG和REDO/UNDO LOG的区别1.处理层次不同,REDO/UNDO LOG由Innodb存储引擎处理,而BINLOG由MySQL 服务层处理.2.记录内容不同,REDO/UNDO LO ...

  2. skipper 内置的常用filters

    skipper 的filter 功能很强大,可做好多方便的扩展 格式: all: * -> filter1 -> filter2 -> "http://127.0.0.1: ...

  3. Computer Go Programming 学习

    https://senseis.xmp.net/?ComputerGoProgramming https://www.worldscientific.com/doi/pdf/10.1142/S0218 ...

  4. Unity5 图形系统介绍 学习

  5. openstack--4--控制节点安装配置glance

    Glance相关介绍 image Service 的功能是管理 Image,让用户能够发现.获取和保存 Image.在 OpenStack 中,提供 Image Service 的是 Glance,其 ...

  6. HBase启动后RegionServer自动挂原因及解决办法

    zookeeper在同步和管理集群时依赖节点系统时间,每隔一定周期zookeeper master会监测所有节点的连接状态.所以解决办法就是利用ntp对集群局域网进行时间同步. CentOS设置系统时 ...

  7. [转]使用 Angular CLI 和 ng-packagr 构建一个标准的 Angular 组件库

    使用 Angular CLI 构建 Angular 应用程序是最方便的方式之一. 项目目标 现在,我们一起创建一个简单的组件库. 首先,我们需要创建一个 header 组件.这没什么特别的,当然接下来 ...

  8. Linux shell 将字符串分割成数组

    原文链接:http://1985wanggang.blog.163.com/blog/static/776383320121745626320/ a="one,two,three,four& ...

  9. 安装tensorflow,那叫一个坑啊

    最近,项目团队需要研究并应用AI的技术,在具体的产品实施环节中使用.之前的几个项目,是委托武汉大学给做的,基于keras框架,实现了一些图像识别的项目. 这不,上方希望自己能够掌握一些常用且成熟的AI ...

  10. fastdfs远程服务器java连接失败的问题

    異常如下: java.net.SocketTimeoutException: connect timed out at java.net.DualStackPlainSocketImpl.waitFo ...