• 07-首屏优化策略


    1.(1)路由懒加载:import动态引入路由组件

      当打包构建应用时,JavaScript包会变得非常大,影响页面加载。

      如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。

      以函数的形式动态引入,这样就可以把各自的路由文件分别打包,只有在解析给定的路由时,才会下载路由组件。比如做了动态路由加载,渲染首屏时候,并不会把其他页面的路由组件给加载出来。而是只有跳转到其他页面路由时候才加载。

     (2)并且:

      cli3中默认开启的prefetch(预先加载模块),他会提前获取用户未来可能会访问的内容。

      不关闭就会在首屏把动态路由也都会一口气下载了。

    2. element-ui按需加载

    3. 开启摇树

    module.exports = {
      //...
      optimization: {
        usedExports: true,
      },
    };

    4. 拆包(splitChunks)

    参数chunks的三个值说明:

    async:异步模块的拆分或者说是切割,如动态加载的模块。

    initial:只对入口文件中引入的模块进行拆分,至于引入的这个模块中还引入了其他模块,则不会拆分。

    all:以上两种的合体;对所有模块管你同步异步,管你模块引多少层模块,都给你拆成一个个的。 

      (1)   公共模块抽离

      (2)   第三方库抽离

    5. gzip压缩

    拆完包之后,我们再用gzip做一下压缩

    npm i compression-webpack-plugin -D

    vue.congig.js中引入并修改webpack配置

    const CompressionPlugin = require('compression-webpack-plugin')
    
    configureWebpack: (config) => {
            if (process.env.NODE_ENV === 'production') {
                // 为生产环境修改配置...
                config.mode = 'production'
                return {
                    plugins: [new CompressionPlugin({
                        test: /.js$|.html$|.css/, //匹配文件名
                        threshold: 10240, //对超过10k的数据进行压缩
                        deleteOriginalAssets: false //是否删除原文件
                    })]
                }
            }

    6.通过externals加载外部CDN资源

  • 相关阅读:
    jstat使用
    oracle 定期copy 大表统计信息(分区表)
    PL/SQL注册码
    Linux系统--命令行安装weblogic10.3.6
    oracle 11.2.0.4 dbca创建数据库时 报错ORA-12532
    自动重建索引脚本
    oracle 添加登陆数据库触发器--记录IP 地址
    oracle 触发器
    oracle 定位SQL
    查询rman 备份信息集
  • 原文地址:https://www.cnblogs.com/haoqiyouyu/p/14791346.html
Copyright © 2020-2023  润新知