传统的页面属于 MPA (即多页面应用 ,MultiPage Application)。访问网站的时候,每次切换页面,浏览器就会不停的重新请求页面
什么是 SPA
SPA,就是单页 Web 应用(single page web application),它是只有一张 Web 页面的应用(加载单个 HTML 页面),并在用户与应用程序交互时动态更新该页面。
它的特点是:公共资源(js、css等)仅需加载一次,跳转其它页面的时候,仅仅刷新局部的资源。
单页面和多页面的区别
先来看看单页面应用和多页面应用的结构:
单页面:
多页面:
可以看出:
- 多页面应用是由多个完整页面构成的,有利于 SEO ,页面重复代码较多,切换页面的时候也会整页刷新。
- 而单页面应用,由个主页面+多个模块组件组成。相对来说页面复杂度高一些,组件有很高的复用性,便于维护,前后端分离友好。切换页面时只是进行组件切换,进行局部的刷新,对服务器压力较小。
MPA 还有一些弊端,比如页面间传值, 除此之外,SPA 单面应用的缺点是,
- 不利于SEO,可使用 SSR(服务器端渲染)优化
- 如果当初次加载时文件过多,需要进行优化
SPA 的首屏优化
-
代码优化
-
路由懒加载
以函数的形式加载路由,这样在解析路由的时候才会去加载此路由组件
-
按需引入第三方资源,如Antd,页面按需进行引入( 使用 babel-plugin-component)
-
图片压缩
-
nginx 开启 gzip,减小网络传输的流量
-
webpack开启 gzip 压缩
-
SSR 渲染(通过服务器生成html字符串,再发送到浏览器,技术:Nuxt.js、koa2等等)