Day17 浅谈Code-Splitting

当我们在开发专案时,模组的体积会随着功能的增加而变的庞大,甚而影响到使用者的体验,这时候就需要做所谓的Code Splitting。Code Splitting的概念为以下两点:

  1. 将不常变动或更新的程序独立打包出来,让浏览器读取快取而不用重新读取全部的程序
    可以将不常更动的第三方套件独立出来,如React之类。
  2. 依照功能模组打包你的程序,且在使用该功能时才去载入模组
    可以减少程序初始化时下载的内容。

import()

使用动态import()的语法,可以让你在使用该功能时才载入程序。
引入前:

import { add } from './math';

console.log(add(16, 26));

引入後:

import("./math").then(math => {
  console.log(math.add(16, 26));
})

React.lazy

React.lazy可以帮助你让程序做到动态载入,使用方法为React.lazy渲染一个动态import()的component。
引入前:

import OtherComponent from './OtherComponent';

引入後:

const OtherComponent = React.lazy(() => import('./OtherComponent'));

lazy component需要在 Suspense component中渲染,Suspense component可已让等待载入的component显示loading文字,等待程序载入完毕。

import React, { Suspense } from 'react';

const OtherComponent = React.lazy(() => import('./OtherComponent'));

function MyComponent() {
  return (
    <div>
      <Suspense fallback={<div>Loading...</div>}>
        <OtherComponent />
      </Suspense>
    </div>
  );
}

<<:  [Day24] 运用 VS Code 组合键加快编辑速度 - 文字编辑篇

>>:  【D18】尝试料理:取得所有股票清单

day4 network simulator (雷)新不代表好

来部落格看图文并茂文章 补觉鸣诗 模拟器分三种 packet tracer GNS3 EVE-NG ...

Day1-前言:三十天成为D3好手

本篇大纲: 为何选此主题 为何不使用框架 这三十天要讲的大纲 Github 程序码与 Github...

Day1 後端及PHP介绍

Day1 後端及PHP介绍 大家好~ 之後的30天来跟大家介绍一下我学习PHP到现在的过程,主要会以...

[Day 5] 排版布局Stack

Stack 组件用於沿垂直或水平轴的布局 也是RWD应用的选项之一 复杂度跟所选参数都可以轻易使用 ...

[Day 6]中秋时在做什麽,有没有空,可以帮想标题吗(前端篇)

今天来实作Navite Camp的Nav,看官们可以点网址去看他的效果,因为没有时间,滑鼠移动到各t...