优缺点

优点

  1. 通用的静态资源(比如 jQuery、Axios、Boostrap 等)不需要重新加载;
  2. 页面的数据状态和用户状态依然保留;
  3. 局部页面内容更新,页面切换快,用户体验好。

缺点

单页应用相比多页应用的优势主要在于页面切换时。在首次打开的时候,多页应用可以直接返回用于最终渲染的页面,而单页应用则需要自行进行计算和组装,中间过程很可能还涉及数据的二次请求,因此会比多页应用慢。

除此之外,由于搜索引擎只识别 HTML 内容,单页应用更多依赖 Javascript 进行 HTML 拼接,因此对 SEO(search engine optimization 简写为 SEO,搜索引擎优化)的支持不友好,很可能会影响搜索引擎中的排名。

如今不少前端框架也支持服务端渲染(SSR,Server-Side-Rendering),通过提供 Node. Js 服务的方式,在服务端完成页面内容的拼接,直接返回给前端。相对的,单页应用的渲染方式,也被称为客户端渲染(CSR,Client-Side-Rendering)。