zoukankan      html  css  js  c++  java
  • react首屏页面加载性能优化记录

    能按需加载的东西、尽量配置一下。

    一、webpack devtool

    devtool的值有好几个,根据自己的情况和环境的不同,选择合适的,一般打包的时候可以用:eval 、eval-source-map或者cheap-eval-source-map。我这边打包时,直接设置成了:‘eval ’。具体可以去官网查看每个值的作用~

    二、如果使用的是antd框架,通过打包分析,你会发现有个icons文件500多k,有点大~ 

    解决办法是:

    1.随意找个地方建个.js文件,名称也随意~,比如是icons.js (当然要规范哈),用来按需引入在项目中使用到的图标,如下:

    // 根据自己在项目中使用到的图标 按需引入
    export { default as UserOutline} from '@ant-design/icons/lib/outline/UserOutline'
    export { default as LockOutline} from '@ant-design/icons/lib/outline/LockOutline'
    export { default as GitlabOutline} from '@ant-design/icons/lib/outline/GitlabOutline'
    export { default as ProjectOutline} from '@ant-design/icons/lib/outline/ProjectOutline'
    export { default as BulbOutline} from '@ant-design/icons/lib/outline/BulbOutline'
    export { default as DesktopOutline} from '@ant-design/icons/lib/outline/DesktopOutline'

    2.在webpack配置文件中的alias对象,添加一些代码,代码如下:

    alias:{
       '@ant-design/icons/lib/dist$': path.resolve(__dirname, '填第一步文件的路径')
       // '@ant-design/icons/lib/dist$': path.resolve(__dirname, '../src/util/icons.js')
    }

    注:目前使用的antd版本是^3.26.15 。如果项目中,用的图标太多,那就有点麻烦了,可以直接考虑用阿里巴巴矢量图吧~

    三、开启gzip压缩功能

    1.安装 compression-webpack-plugin ,执行 npm i compression-webpack-plugin -D

    2.引入compression-webpack-plugin

    const CompressionWebpackPlugin = require("compression-webpack-plugin");
      const productionGzipExtensions = ["js", "css", "json"];

    3.在plugins中配置

    new CompressionWebpackPlugin({ //gzip配置
                    algorithm: 'gzip',
                    test: new RegExp("\.(" + productionGzipExtensions.join("|") + ")$"),
                    minRatio: 0.6,
                    threshold:10240, //超过10k
                })

    compression-webpack-plugin还有其它配置项,具体可以去webpack官网,直接搜索compression-webpack-plugin就行。

    配置完之后,直接运行打包命令,npm run build ,然后在打包文件夹中,会多出一些.gz文件。之后、全部放到服务器上去。(在vue中也同样可以使用)

    需要确保服务器那边,开启了gzip功能。

    其实前端这些配置,按理说是可以省略的,因为服务器那边直接开启gzip功能,也能有压缩效果。

    那为啥还要前端这边去配置生成.gz文件呢?如果前端这边提供了.gz文件,服务器收到请求时,就直接用这个文件了,但如果前端没有提供.gz文件,服务器会自动去压缩生成,这一步压缩生成,是需要时间滴。

  • 相关阅读:
    推荐几款Winform下的皮肤控件!
    PetShop之业务逻辑层设计 《解剖PetShop》系列之五
    25款.NET开发必备工具推荐
    在aspx页面实现高亮显示搜过关键字
    PetShop之ASP.NET缓存 《解剖PetShop》系列之四
    ASP.NET页面加载顺序
    PetShop之表示层设计 《解剖PetShop》系列之六
    C#打包应用程序
    .NET获取英文月份缩写名(可获取其他国家)
    SQL Server 日期格式化输出
  • 原文地址:https://www.cnblogs.com/Mrrabbit/p/12699939.html
Copyright © 2011-2022 走看看