React 懒加载组件
//组件第一次初始化的时候加载.
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 懒加载组件的更多相关文章
- 【react懒加载组件】--react-lazyload
组件安装: npm install react-lazyload --save-dev 组件使用: //引入 import LazyLoad from 'react-lazyload'; //rend ...
- jQuery.imgLazyLoad图片懒加载组件
一.前言 当一个页面中请求的图片过多,而且图片太大,页面访问的速度是非常慢的,对用户的体验非常不友好:使用图片懒加载,可以减轻服务器的压力,增加页面的访问量,这里主要是总结一下我自己写的图片懒加载组件 ...
- 带加载进度的Web图片懒加载组件Lazyload
在Web项目中,大量的图片应用会导致页面加载时间过长,浪费不必要的带宽成本,还会影响用户浏览体验. Lazyload 是一个文件大小仅4kb的图片懒加载组件(不依赖其它第三方库),组件会根据用户当前浏 ...
- vue-cli按需加载,懒加载组件
vue来做一个单页面应用,当我们的项目越来越大,组件越来越多的时候,首次启动项目户特别慢,就算做一个加载框,蒙层之类的,体验也不会好,这个时候就需要按需加载 1.什么叫按需加载 所谓按需加载,顾名思义 ...
- react异步加载组件
1. 创建 asyncComponent 异步加载工具 import React from 'react' function asyncComponent(loadComponent){ class ...
- Vue 组件异步加载(懒加载)
一.vue的编译模式 (1)路由配置信息 //eg1: const MSite = resolve => require.ensure([], () =>resolve(require([ ...
- vue2组件懒加载浅析
vue2组件懒加载浅析 一. 什么是懒加载 懒加载也叫延迟加载,即在需要的时候进行加载,随用随载. 二.为什么需要懒加载 在单页应用中,如果没有应用懒加载,运用webpack打包后的文件将会异常的大, ...
- 前端性能优化成神之路--vue组件懒加载(Vue Lazy Component )
---恢复内容开始--- 使用组件懒加载的原因 我们先来看看这样的一个页面,页面由大量模块组成,所有模块是同时进行加载,模块中图片内容较多,每个模块的依赖资源较多(包括js文件.接口文件.css文件等 ...
- vue组件懒加载
vue2组件懒加载浅析 一. 什么是懒加载 懒加载也叫延迟加载,即在需要的时候进行加载,随用随载. 二.为什么需要懒加载 在单页应用中,如果没有应用懒加载,运用webpack打包后的文件将会异常的大, ...
随机推荐
- Stream processing with Apache Flink and Minio
转自:https://blog.minio.io/stream-processing-with-apache-flink-and-minio-10da85590787 Modern technolog ...
- 普林斯顿数学指南(第二卷) (Timothy Gowers 著)
第IV部分 数学的各个分支 IV.1 代数数 IV.2 解析数论 IV.3 计算数论 IV.4 代数几何 IV.5 算术几何 IV.6 代数拓扑 IV.7 微分拓扑 IV.8 模空间 IV.9 表示理 ...
- oracle-闪回技术1
http://blog.csdn.net/lqx0405/article/details/44776737 Oracle Study案例之--基于表空间的时间点恢复(TSPITR) DBPITR 数 ...
- Java Runnable与Callable区别
接口定义 #Callable接口 public interface Callable<V> { V call() throws Exception; } #Runnable接口 publi ...
- 谈谈 SOA
为什么要 讨论 SOA 呢 ? 请参考我写的另一篇文章 <论 微服务 和 Entity Framework 对 数据 的 割裂> https://www.cnblogs.com/KS ...
- BTrace学习总结
一.简介: 在生产环境中经常遇到格式各样的问题,如OOM或者莫名其妙的进程死掉.一般情况下是通过修改程序,添加打印日志:然后重新发布程序来完成.然而,这不仅麻烦,而且带来很多不可控的因素.有没有一种方 ...
- 深入理解 content 计数器
计数器可以说是content的重点, 因为此功能非常强大, 实用, 并且不具有可替代性, 甚至可以实现连JavaScript都不好实现的效果. 所谓css计数器效果, 就是使用CSS代码实现随元素的数 ...
- spring boot 学习资料
spring boot 学习资料: 学习资料 网址 Spring Boot Cookbook-极客学院 http://wiki.jikexueyuan.com/project/spring-boot- ...
- https ssl 请求过程详解
http 协议:http 协议是一种无状态,短链接的 通信协议,http 协议建立在 tcp 协议之上. http 协议 分成 三个 部分 请求行,请求头,请求体 请求行: 就是访问的地址 ( 包含 ...
- C# Json数组序列化和反序列总结
1.创建json数组,例: JArray arrFile = new JArray(); arrFile.Add(new JObject() { new JProperty("FilePat ...