【Umi】通过配置 dynamicImport loadingComponent 实现子页面加载效果

此文章首发于 CSDN
写在前面,本文为原创作品,转载请注明出处,谢谢~

在前端单页面应用中,子页面的代码都是当用户访问到的时候,才会异步去加载子页面的代码。

如果子页面代码较大,那么会给用户一段时间的卡顿感,很影响使用体验。

所以,我们想在加载子页面代码时,显示 loading 组件,从而优化体验。

在 Umi 中,可以通过简单的配置,即可实现。

1、编写 loading 组件:

(src/components/PageLoading/index.js)

import React from 'react';
import { Spin } from 'antd';

// loading components from code split
// https://umijs.org/plugin/umi-plugin-react.html#dynamicimport
export default () => (
  <div style={{ paddingTop: 100, textAlign: 'center' }}>
    <Spin size="large" />
  </div>
);
image.gif

2、在 .umirc.js 配置 dynamicImport 的 loadingComponent:

export default {
  treeShaking: true,
  //extends: ['eslint:recommended'],
  plugins: [
    // ref: https://umijs.org/plugin/umi-plugin-react.html
    [
      'umi-plugin-react',
      {
        antd: true,
        dva: true,
        dynamicImport: {
          loadingComponent: './components/PageLoading/index',
          webpackChunkName: true,
          level: 3,
        },
        ...
      },
    ],
  ],
 ...
}

3、配置完毕,等 umi 热加载完成后,回到页面,切换路由,就可以看到 loading 效果了:

image.png

以上。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:什么是闭包?闭包的用处? (1)闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就 是将函数内部和函数外...
    xuguibin阅读 9,735评论 1 52
  • 懒加载 为什么需要懒加载? 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大...
    littlesiqi阅读 16,298评论 1 8
  • 从2017年年初我步入所谓的修行之路,经历一年的蜕变,我收获了身体状况了大幅改善,享受到精力旺盛的幸福感觉。虽然体...
    雕虫小冀阅读 226评论 0 1
  • 00 罗胖在《有效行动的逻辑》一辑中指出几个简单有用的道理:学渣逻辑、行动统领理性逻辑。从行动的逻辑到学习的逻辑,...
    王胤升阅读 401评论 0 0
  • 正念呼吸疗法,训练8周立即思路清晰又抗压、不被情绪绑架。 由于现代人的生活高压且步调紧凑,精神生活的贫瘠也常常让人...
    千年清欢阅读 1,783评论 0 0