最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

vue中如何优化单页应用首屏加载速度(详细)

来源:动视网 责编:小采 时间:2020-11-27 19:31:52
文档

vue中如何优化单页应用首屏加载速度(详细)

vue中如何优化单页应用首屏加载速度(详细):本篇文章给大家带来的内容是关于vue中如何优化单页应用首屏加载速度(详细) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。单页应用会随着项目越大,导致首屏加载速度很慢。以下给出在下知道的几种优化方案使用CDN资源,减小服务器带
推荐度:
导读vue中如何优化单页应用首屏加载速度(详细):本篇文章给大家带来的内容是关于vue中如何优化单页应用首屏加载速度(详细) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。单页应用会随着项目越大,导致首屏加载速度很慢。以下给出在下知道的几种优化方案使用CDN资源,减小服务器带


本篇文章给大家带来的内容是关于vue中如何优化单页应用首屏加载速度(详细) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

单页应用会随着项目越大,导致首屏加载速度很慢!!!以下给出在下知道的几种优化方案

  1. 使用CDN资源,减小服务器带宽压力

  2. 路由懒加载

  3. 将一些静态js css放到其他地方(如OSS),减小服务器压力

  4. 按需加载三方资源,如iview,建议按需引入iview中的组件

  5. 使用nginx开启gzip减小网络传输的流量大小

  6. webpack开启gzip压缩

  7. 若首屏为登录页,可以做成多入口,登录页单独分离为一个入口

使用CDN资源,减小服务器带宽压力

在index.html中引入cdn资源

...
 <body>
 <p id="app">
 </p>
 <!-- built files will be auto injected -->
 <script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script>
 <script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>
 <script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.min.js"></script>
 <script src="https://cdn.bootcss.com/vue-resource/1.5.1/vue-resource.min.js"></script>
 </body>
 ...

修改 build/webpack.base.conf.js

module.exports = {
 context: path.resolve(__dirname, '../'),
 entry: {
 app: './src/main.js'
 },
 externals:{
 'vue': 'Vue',
 'vue-router': 'VueRouter',
 'vuex':'Vuex',
 'vue-resource': 'VueResource'
 },
 ...
}

修改src/main.js src/router/index.js 注释掉import引入的vue,vue-resource

// import Vue from 'vue'
// import VueResource from 'vue-resource'
// Vue.use(VueResource)

路由懒加载

const workCircle = r => require.ensure([], () => r(require('@/module/work-circle/Index')), 'workCircle')
const workCircleList = r => require.ensure([], () => r(require('@/module/work-circle/page/List')), 'workCircleList')

将一些静态js css放到其他地方(如OSS),减小服务器压力

注意这里的js文件,需要将结果抛出,然后在需要用到该js的组件中import引入

按需加载三方资源,如iview,建议按需引入iview中的组件

按需引用请查看iview官方文档iview

使用nginx开启gzip减小网络传输的流量大小

配置nginx,可以参考Nginx开启Gzip压缩大幅提高页面加载速度

webpack开启gzip压缩

这里需要配合Nginx服务器,Nginx开启gzip

  • config/index.js中

  • module.exports = {
     build: {
     ...
     // Gzip off by default as many popular static hosts such as
     // Surge or Netlify already gzip all static assets for you.
     // Before setting to `true`, make sure to:
     // npm install --save-dev compression-webpack-plugin
     productionGzip: true, // 就是这里开启gzip,vue-cli搭建项目,这里默认为false
     productionGzipExtensions: ['js', 'css'],
    
     // Run the build command with an extra argument to
     // View the bundle analyzer report after build finishes:
     // `npm run build --report`
     // Set to `true` or `false` to always turn it on or off
     bundleAnalyzerReport: process.env.npm_config_report
     }
    }

    build/webpack.prod.conf.js中

    使用vue-cli构建项目时,默认会有这段代码

    if (config.build.productionGzip) {
     const CompressionWebpackPlugin = require('compression-webpack-plugin')
     webpackConfig.plugins.push(
     new CompressionWebpackPlugin({
     asset: '[path].gz[query]',
     algorithm: 'gzip',
     test: new RegExp(
     '\\.(' +
     config.build.productionGzipExtensions.join('|') +
     ')$'
     ),
     threshold: 10240,
     minRatio: 0.8
     })
     )
    }

    若首屏为登录页,可以做成多入口,登录页单独分离为一个入口

    文档

    vue中如何优化单页应用首屏加载速度(详细)

    vue中如何优化单页应用首屏加载速度(详细):本篇文章给大家带来的内容是关于vue中如何优化单页应用首屏加载速度(详细) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。单页应用会随着项目越大,导致首屏加载速度很慢。以下给出在下知道的几种优化方案使用CDN资源,减小服务器带
    推荐度:
    标签: 加载 VUE 应用
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top