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);
        });
    });
  • 相关阅读:
    OutOfMemoryError异常
    synchronized四种锁状态的升级
    题解LeetCode--三数之和
    JDK 8的HashMap源码解析
    LinkedList原理分析
    队列与LinkedList原理实现
    Java中的递归以及不死神兔实例(斐波那契数列)
    递归问题1
    排序的第二天_快速排序与归并排序
    yum源遇到的问题
  • 原文地址:https://www.cnblogs.com/lhp2012/p/6279782.html
Copyright © 2011-2022 走看看