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);
        });
    });
  • 相关阅读:
    原来发布到主页是发布到博客园的主页啊,还真不知道
    sysobjects
    blend3破解文件,直接覆盖安装目录源文件即可。
    Microsoft Sql中char和varchar的区别与联系
    SQL脚本创建数据表,并给出主键,外键,唯一键,约束
    asp.net调试方法
    VS2010安装项目的系统必备中添加.NET 2.0
    c#,自定义安装,部署,创建自定义操作,自定义操作,安装验证,数据库,安装授权码,接收输入,判断
    Ext2.2系列(50篇)
    C# 获取24小时制的当前系统时间
  • 原文地址:https://www.cnblogs.com/lhp2012/p/6279782.html
Copyright © 2011-2022 走看看