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打包后的文件将会异常的大, ...
随机推荐
- Vue的路由动态重定向和导航守卫
一.重定向 重定向也是通过 routes 配置来完成,下面例子是从 /a 重定向到 /b: const router = new VueRouter({ routes: [ { path: '/a', ...
- MySQL--字符集基础
========================================================================= 字符集和编码规则 字符集:特定类型或用途的字符集合, ...
- tailor+ skipper 实现micro-frontends 简单试用
tailor 在Mosaic 框架中扮演fragment 模版layout的处理,后端fragment可以用任何服务编写 tailor 主要就是进行layout的处理.tailor的是类似facebo ...
- java程序源码
//Account.java package pers.liqin.accounlist; public class Account { private String accountID; priva ...
- 短小而精悍的JsvaScript函数
1. 回到顶部, 使用浏览器的刷新频率 requestAnimationFrame 来实现的 const scrollToTop = () => { const c = document.doc ...
- mysql 的 docker 镜像使用
mysql 的 docker 镜像使用: 下载镜像: docker pull mysql:8.0.14 运行容器: docker run -it -e MYSQL_ROOT_PASSWORD=mypw ...
- TypeScript 之 tsconfig.json
https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/tsconfig.json.html 如果一个目录下存在一个tsco ...
- openstack 开启 spice远程连接
openstack 默认开的远程控制是novnc 这里是用kolla初建的openstack nova_console vi /etc/kolla/globals.yml ... # Valid op ...
- java-plupload上传大文件
参考链接: https://blog.csdn.net/hjf_1291030386/article/details/74784172 https://www.cnblogs.com/tengyunh ...
- LDO与DC-DC
LDO的功耗可能较低,在430中如果用3.7v锂电池供电,最好用LDO DC-DC功耗较高 其它的区别不大