SPA 单页面应用

121 阅读2分钟

传统的页面属于 MPA (即多页面应用 ,MultiPage Application)。访问网站的时候,每次切换页面,浏览器就会不停的重新请求页面

什么是 SPA

SPA,就是单页 Web 应用(single page web application),它是只有一张 Web 页面的应用(加载单个 HTML 页面),并在用户与应用程序交互时动态更新该页面。

它的特点是:公共资源(js、css等)仅需加载一次,跳转其它页面的时候,仅仅刷新局部的资源。

单页面和多页面的区别

先来看看单页面应用和多页面应用的结构:

单页面:

1682327354617.png

多页面:

image.png

可以看出:

  • 多页面应用是由多个完整页面构成的,有利于 SEO ,页面重复代码较多,切换页面的时候也会整页刷新。
  • 而单页面应用,由个主页面+多个模块组件组成。相对来说页面复杂度高一些,组件有很高的复用性,便于维护,前后端分离友好。切换页面时只是进行组件切换,进行局部的刷新,对服务器压力较小。

MPA 还有一些弊端,比如页面间传值, 除此之外,SPA 单面应用的缺点是,

  • 不利于SEO,可使用 SSR(服务器端渲染)优化
  • 如果当初次加载时文件过多,需要进行优化

SPA 的首屏优化

  • 代码优化

  • 路由懒加载

    以函数的形式加载路由,这样在解析路由的时候才会去加载此路由组件

  • 按需引入第三方资源,如Antd,页面按需进行引入( 使用 babel-plugin-component)

  • 图片压缩

  • nginx 开启 gzip,减小网络传输的流量

  • webpack开启 gzip 压缩

  • SSR 渲染(通过服务器生成html字符串,再发送到浏览器,技术:Nuxt.js、koa2等等)