lazy内置方法 Suspense内置组件

  • lazy是React提供的懒(动态)加载组件的方法,React.lazy()

  • 能减少打包体积、延迟加载首屏不需要渲染的组件

  • 依赖内置组件Suspense:给lazy加上loading指示器组件的一个容器组件

  • Suspense目前只和lazy配合实现组件等待加载指示器的功能

  • React.lazy 接受一个函数,这个函数需要动态调用 import()。它必须返回一个 Promise,该 Promise 需要 resolve 一个 default export 的 React 组件。所以要用类返回render而不是函数

  • index.jsx

import Loading from './loading'
const MyMain = React.lazy(() => import('./main.jsx'))
function App() {return (<div>{/* 注意 fallback这里是组件 */}<React.Suspense fallback={<Loading />}><MyMain /></React.Suspense></div>)
}ReactDOM.render(<App />,document.getElementById('app')
)
  • main.jsx
// export function Main() {//     return (
//         <div>
//             显示内容
//         </div>
//     )
// }
// React.lazy 接受一个函数,这个函数需要动态调用 import()。
// 它必须返回一个 Promise,该 Promise 需要 resolve 一个 default export 的 React 组件。
export default class Main extends React.Component {render() {return (<div>显示内容</div>)}
}
  • Loading.jsx
export default function Loading() {return (<div><h1>Loading...</h1><h1>Loading...</h1><h1>Loading...</h1></div>)
}

路由懒加载

  • yarn add react-router react-router-dom
  • 本地调试时,path和文件名同名,会变成访问文件
  • index.jsx
import Loading from './loading'
import React, { lazy, Suspense } from 'react'
import { BrowserRouter } from 'react-router-dom'
import { Switch, Route } from 'react-router'
const MyMain = lazy(() => import('./main.jsx'))
function App() {return (<div>{/* 注意 fallback这里是组件 */}<Suspense fallback={<Loading />}><div><MyMain /><Switch><Route path="/mypage1" component={lazy(() => import('./page1.jsx'))} /><Route path="/mypage2" component={lazy(() => import('./page2.jsx'))} /></Switch></div></Suspense></div>)
}// 路由懒加载
ReactDOM.render(<React.StrictMode><BrowserRouter><App /></BrowserRouter></React.StrictMode>,document.getElementById('app')
);

14 代码分割之lazy:Suspense与路由懒加载相关推荐

  1. react中使用lazy函数进行路由懒加载

    react中使用lazy函数进行路由懒加载 import React, { Component,lazy,Suspense} from 'react' //1.通过React的lazy函数配合impo ...

  2. React ----- 路由懒加载的几种实现方案

    传统的两种方式 1.import() 符合ECMAScript提议的import()语法,该提案与普通 import 语句或 require 函数的类似,但返回一个 Promise 对象.这意味着模块 ...

  3. Code Splitting代码分包(路由懒加载)

    code split代码分包(路由懒加载) 前言,​在应用打包结果过大时,按照设置的规则打包到不同的bundle中,提高应用响应速度.也就是当一个页面进行加载的时候如果太慢,那么你就可以考虑对工程进行 ...

  4. React - 路由 lazyLoad 的使用(路由懒加载)

    React - 路由 lazyLoad(路由懒加载) lazy是React提供的懒(动态)加载组件的方法,React.lazy() 路由组件代码会被分开打包,能减少打包体积.延迟加载首屏不需要渲染的组 ...

  5. Vue—核心概念—异步组件和路由懒加载

    原文地址:Vue 异步组件&路由懒加载 目录 异步组件 异步组件介绍 异步组件声明 高级异步组件 路由懒加载 路由懒加载介绍 路由懒加载方法 把组件按组分块 异步组件 异步组件介绍 在开发大型 ...

  6. 前端学习(2742):重读vue电商网站52之路由懒加载

    当打包构建项目时,JavaScript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了. 具体需要 3 步: 安 ...

  7. vue路由懒加载_优化vue项目的首屏加载速度

    最近使用vue-cli3构建了一个小型的博客系统,完工之后,build打包出来发现一个chunk-vendors包就有1.1m,部署上去之后,访问的时候,首屏加载非常慢.居然需要21s,体验极差. 这 ...

  8. 路由的导航守卫过渡动效transtion导航守卫 路由懒加载 路由元信息 @stage3---wee2--day7

    # 路由的导航守卫 别名: 导航守卫 路由守卫 路由钩子 路由拦截 作用: - 类似 [保安] 守卫路由 进 举例: 携带数据进 出 举例: 事情完成才能出 导航守卫一共有三种形式 [ 项目三选一 ] ...

  9. Vue项目开发中使用路由懒加载

    Vue项目开发中使用懒加载 一.使用路由懒加载的好处 当打包项目时,JavaScript包会变的非常大,影响页面加载,要是通过把不同的路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应 ...

最新文章

  1. SLAM之特征匹配(一)————RANSAC-------OpenCV中findFundamentalMat函数使用的模型
  2. JAVA(IO流)知识整理
  3. 用户控件中动态加入脚本引用
  4. python获取数据库列名_python sqlite3 查询操作及获取对应查询结果的列名
  5. JWT 和 session验证
  6. php语言冒泡法,冒泡排序法(php)
  7. missing legacy device support
  8. 这35个Java代码优化细节,你用了吗?
  9. ERROR 程序出错,错误原因:'bytes' object has no attribute 'read'
  10. php 什么情况下加异常,PHP中的异常
  11. JFinal保存对象后可以取出主键
  12. 安装VS2008关于解决磁盘已满问题方案.
  13. 【机器学习】实验5布置:基于K-近邻的车牌号识别
  14. 生成淘口令发现的一个趣事 c#
  15. 江苏省2017年高等数学竞赛本二试题(含解答)
  16. 20071020ー胡小蝶
  17. [RK3288][Android6.0] 主动从WLAN网络切换到移动数据网络
  18. Mac电脑装centos虚拟机网络设置
  19. CPU中的八个通用寄存器
  20. On the Grasshopper and the Cricket --John Keats 蝈蝈与蟋蟀 济慈

热门文章

  1. jmeter跨线程组传多个值_Jmeter 跨线程组传递参数 之两种方法(转)
  2. 依据imu姿态角计算z轴倾角_1. 姿态的表示方法
  3. Python中字符串操作函数string.split('str1')和string.join(ls)
  4. Training a classifier
  5. 赛码网算法: 上台阶 ( python3实现 、c实现)
  6. android基础组件----Button的使用
  7. 1个多月就能看到效果的减肥大法 - 健康程序员,至尚生活!
  8. 张小娴的文章,喜欢的,贴来存档
  9. Vue项目中Table设置 render 函数
  10. 《算法竞赛进阶指南》0.5排序