直接回答
从后端视角看,SPA(单页应用)的主要缺点:①SEO 不友好——首屏 HTML 几乎为空,依赖 JS 渲染内容,搜索引擎抓取困难;②首屏加载慢——要下载完整 JS bundle 并执行后才渲染,弱网/低端机白屏时间长;③后端从"渲染页面"变成"纯 API 服务",前后端耦合转移到接口契约上,接口设计、鉴权、跨域、安全防护的负担加重。
展开解析
具体展开这几点:
- SEO 与分享:爬虫对 JS 渲染支持有限且不及时;社交分享抓取 OG 标签也需要静态 HTML。对策是 SSR/SSG(Next.js、Nuxt)、预渲染,或对爬虫 UA 单独返回渲染后的页面——每种都增加后端/基建复杂度。
- 首屏性能:对策包括路由级代码分割、懒加载、CDN、骨架屏、HTTP/2、缓存策略;或干脆上 SSR 把首屏渲染还给服务端。
- 后端职责变化:页面路由与数据解耦后,后端要维护版本化的 REST/GraphQL 接口;无状态 API 使鉴权从 Cookie-Session 转向 Token(JWT),要处理刷新、吊销;跨域(CORS)、CSRF 防护策略要重新设计;接口还要防爬防刷——以前藏在服务端渲染里的数据,现在全暴露在 API 层。
- 监控割裂:路由跳转不发请求,传统服务端日志看不到用户真实浏览路径,前后端需要各自埋点并对齐。
选型建议:内容型、重 SEO 站点(官网、博客)优先 SSR/SSG;交互重的后台系统、工具类应用用 SPA 收益明显。