zoukankan      html  css  js  c++  java
  • 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);
        });
    });
  • 相关阅读:
    客户端用java api 远程操作HDFS以及远程提交MR任务(源码和异常处理)
    HighCharts终极版本
    Highcharts网页版
    情感化设计中的手绘应用表现
    前端批量下载文件
    PHP 大文件下载,文件传输,支持断点续传。 2g以上超大文件也有效
    PHP超大文件下载,断点续传下载
    php下载大文件,支持断点续传案例
    解决PHP超大文件下载,断点续传下载的方法详解
    PHP如何异步断点续传大文件
  • 原文地址:https://www.cnblogs.com/lhp2012/p/6279782.html
Copyright © 2011-2022 走看看