SPA(单页应用)首屏加载慢怎么处理?减小入口文件大小的常用方法是延迟加载路由。不同路由对应的组件被划分到不同的代码块中。当请求路由时,路由会被单独打包,这样入??口文件变小,加载速度大大提高。vue中-router配置路由时,采用动态加载路由的形式:[path:'blog',name:'blog',component:()=>import('./components.blog.vue')]infunction的形式加载路由,这样可以将各自的路由文件单独打包。只有在解析给定的路由时,才会加载路由组件的静态资源。本地缓存将返回资源。Etag等响应头使用ServiceWorker离线缓存。前端合理使用localStorageUI框架按需加载。在日常使用UI框架的时候,比如element-UI,antd,我们经常会直接引入整个UI库importElementfrom'element-ui'Vue.use(Element)但实际上我们用到的组件只有按钮,分页、表格、输入和警告,所以我们需要引入import{Button,Input,Pagenation,Table}from'element-ui'Vue.use(Button)Vue.use(Input)Vue.use(Pagenation)Vue.use(表)图片资源压缩图片资源不在编码过程中,但对页面性能影响最大对于所有图片资源,我们都可以适当压缩??对于页面使用的图标,可以使用在线字体图标,或精灵图像。打开GZip压缩解压包后,我们使用gzip压缩安装compression-webpack-plugincnmpicompression-webpack-plugin-D在vue.config.js-plugin中引入并修改webpack配置')configureWebpack:(config)=>{如果(process.env.NODE_ENV==='production'){//修改生产配置...config.mode='production'return{plugins:[newCompressionPlugin({test:/\.js$|\.html$|\.css/,//匹配文件名threshold:10240,//压缩超过10k的数据deleteOriginalAssets:false//是否删除原文件})]}}}如果发送浏览器我们也需要在服务端做相应的配置request如果服务器支持gzip,发送一个gzip格式的文件给它。我的服务器是用express框架构建的。只需安装压缩即可使用它。constcompression=require('compression')app.use(compression())//在使用组件之前调用SSRSSR(Serverside),即服务端渲染,是非常复杂的。组件或页面通过服务器生成html字符串,然后发送给浏览器,从头开始构建服务器端渲染。vue应用推荐使用Nuxt.js实现服务端渲染
