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>
  • 相关阅读:
    scss-数据类型
    scss-@import
    scss-&父选择器标识符
    scss-嵌套属性
    Python之NumPy(axis=0 与axis=1)区分
    Java map 详解
    java之JDBC多条语句执行
    p-value值的认识
    numpy.random之常用函数
    Python random模块sample、randint、shuffle、choice随机函数
  • 原文地址:https://www.cnblogs.com/lxz-blogs/p/12793903.html
Copyright © 2011-2022 走看看