Vue项目首屏加载速度优化
一、路由懒加载1、提升用户体验的功能,提高首屏组件加载速度,解决白屏问题2、代码示例2.1无路由懒加载importVuefrom'vue'importRouterfrom'vue-router'importHelloWorldfrom'@/components/HelloWorld'Vue.use(Router)exportdefaultnewRouter({routes:[{path:'/',name:'HelloWorld',component:HelloWorld}]})2.2使用路由延迟加载importVuefrom'vue'importRouterfrom'vue-router'Vue.use(Router)exportdefaultnewRouter({routes:[{path:'/',name:'HelloWorld',//方法一:vue异步组件实现//component:resolve=>(require(['@/components/HelloWorld'],resolve))//方法二:import方法(常用)component:()=>import('@/components/HelloWorld')}]})2.设置价格懒加载1.代码示例1.1原始写法111
模板><脚本>导入HelloWorldfrom'./HelloWorld'exportdefault{components:{HelloWorld},data(){return{msg:'这是VueApp'}}}1.2组件的延迟加载
111 三、在线引入CDN链接1、在项目中找到index.html文件2.配置webpack.base.conf.js,在module.exportsexternals中添加如下代码:{//key:表示名称后跟导入包语法from//value:表示脚本导入js文件,全局环境中的变量名vue:'Vue',axios:'axios','vue-router':'Router'}4.gzip暴力压缩1.nginx开启gzip模式server{listen8103;服务器名称***;#打开gzipgzipon;#压缩文件类型gzip_typestext/plainapplication/javascriptapplication/x-javascripttext/cssapplication/xmltext/javascriptapplication/x-httpd-phpimage/jpegimage/pngimage/gif;#是否在http头中添加Vary:Accept-encofing,建议开启gzip_varyon;}2.vue开启gzip2.1安装依赖npminstallcompression-webpack-plugin@1.1.12--save-dev2.2配置gzipconfig-->index.jsbuild:{productionGzip:true,productionGzipExtensions:['js','css']}5.扩展:分析大文件原因使用webpack-bundle-analyzer分析器分析项目依赖build-->webpack.prod.conf.jsconstBunldeAnalyzerPlugin=require('webpack-bundle-analyzer').BundleAnalyzerPlugin;plugin:[newBunldeAnalyzerPlugin(),]然后运行npmrunbuildpackaging命令,浏览器会显示如下页面,此时我们可以看到有哪些文件包含到底是什么