zoukankan      html  css  js  c++  java
  • react lazy和suspense

    代码拆分

    • Webpack-Code Splitting
    • import    import('./detail.js').then(...)
    import React, { Component,lazy,Suspense } from 'react';
    
    const About = lazy(()=>import(/* webpackChunkName:"about" */ './About'))
     
    //ErrorBoundary 错误边界
    //componentDidCatch
    
    class App extends Component {
    
      state={
        hasError:false
      }
    
      // 和componentDidCatch效果等同
      static getDerivedStateFromError(){
        return{
          hasError:true
        }
      }
    
      // componentDidCatch(error,info){
      //   this.setState({
      //     hasError:true
      //   })
      // }
    
      render() { 
        const {hasError} =this.state
        if(hasError){
          return <div>Error</div>
        }
        return <div>
            <Suspense fallback={<div>loading</div>}>
              <About />
            </Suspense>
          </div>
         
      }
    }
     
    export default App;

    错误边界用法

    class PotentialError extends React.Component {   
      constructor(props) {     
        super(props);     
        this.state = { error: false };
      }
      componentDidCatch(error, info) {     
        this.setState({ error, info });
      }
      render() {
        if (this.state.error) {
          return <h1>Error: {this.state.error.toString()}</h1>;
        }
        return this.props.children;   
      } 
    }
    <PotentialError><AwesomeApp /></PotentialError>
  • 相关阅读:
    TCP通信 小例子
    Socket的简单使用
    Redis练习
    资料
    Redis封装帮助类
    使用Redis的基本操作
    Redis配置主从
    Redis基本设置
    clientHeight ,offsetHeight,style.height,scrollHeight的区别与联系
    服务器操作之如何绑定网站
  • 原文地址:https://www.cnblogs.com/lxz-blogs/p/12793903.html
Copyright © 2011-2022 走看看