最近,我读到一篇文章,标题是《It's time for modern CSS to kill the SPA》,作者是技术 SEO 顾问 Jono Alderson。文章一针见血地指出:我们已经不再需要 SPA(单页应用)来实现“流畅的页面体验”了。现代浏览器的原生能力,尤其是 CSS 的新特性在线配资交易·加杠网,已经足以替代 SPA 的核心价值。
读完之后,我的第一反应是:这不就是我一直在思考的问题吗?为什么现在的前端项目动不动就上 React、Vue、Next.js,搞得像在造火箭,而实际需求不过是一个展示型网站?
今天,我想借这篇文章的启发,聊聊我对“现代 CSS 正在终结 SPA”的看法,以及我们该如何重新审视前端架构的选择。
SPA:曾经的“流畅体验”救世主,如今的性能杀手?
SPA 的兴起,源于一个简单的诉求:“让网站像 App 一样丝滑”。于是,开发者们开始使用 React、Vue 等框架,构建客户端路由、组件化页面、状态管理系统…一切都为了避免页面跳转时的“白屏”和“卡顿”。
但现实是残酷的。多数 SPA 并没有带来真正的流畅体验,反而引入了大量问题:
页面加载延迟,首屏时间动辄 3 秒以上
滚动位置丢失,用户体验割裂
SEO 难做,搜索引擎抓不到内容
可访问性差,屏幕阅读器无法正确识别页面变化
JS 体积庞大,动辄几 MB,移动端用户苦不堪言
我们为了“像 App 一样”,牺牲了网站本该具备的性能、可维护性和可访问性。
现代 CSS + 浏览器原生能力:SPA 的终结者
Jono 在文章中提到几个关键技术,让我眼前一亮:
View Transitions API:页面跳转也能动画过渡
只需几行 CSS,就能实现页面之间的淡入淡出、共享元素动画,甚至保持导航栏不变:
@view-transition {
navigation: auto;
}
::view-transition-old(root),
::view-transition-new(root) {
animation: fade 0.3s ease both;
}
@keyframes fade {
from { opacity: 0; }
to { opacity: 1; }
}
这意味着,我们可以在多页应用(MPA)中实现 SPA 式的视觉体验,而无需 JS 路由、hydration、loading spinner!
Speculation Rules:提前预加载,点击即达
通过浏览器的 Speculation Rules,我们可以在用户 hover 或触摸链接时,提前预加载目标页面,实现“瞬间导航”:
这不是模拟,而是真正的性能提升。只要页面本身足够轻量,用户几乎感受不到加载时间。
Back/Forward Cache(bfcache):浏览器自动缓存页面状态
用户点击“返回”或“前进”时,浏览器可以瞬间恢复页面状态,无需重新加载。这对多页应用来说是天赐良机,但 SPA 往往因劫持路由而无法享受这一福利。
为什么我们还在用 SPA?
这是我最想探讨的问题。为什么明明有更简单、更高效的方式,我们却还在用 SPA?
答案可能是:
惯性思维:大家都在用 React,感觉不用就“落伍”了
误解需求:以为“流畅体验”必须用 SPA 实现
技术炫技:开发者喜欢挑战复杂架构,哪怕项目不需要
工具链绑架:用了某个 CMS 或部署平台,它推荐用 Next.js,于是就顺势用了 SPA
但我们必须清醒地认识到:不是所有网站都是 App。一个企业官网、博客、文档站,真的不需要 SPA 的复杂性。
现代 MPA:更轻、更快、更友好
结合现代 CSS 和浏览器能力,我们可以构建出这样的 MPA:
特性
现代 MPA
传统 SPA
页面跳转
原生导航 + CSS 动画
客户端路由模拟
首屏加载
快速,0KB JS
慢,需加载 JS
SEO
原生支持
需额外配置
可访问性
浏览器默认行为
需手动处理
性能
高效、节能
JS 过重,耗电
开发复杂度
低
高,需状态管理等
这不是“回到过去”,而是“拥抱未来”。现代 MPA 不仅体验不输 SPA,甚至在性能和可维护性上更胜一筹。
我的建议:别再为“像 App 一样”而 SPA 了
如果你正在启动一个新项目,请先问自己几个问题:
这个网站真的需要复杂的状态管理吗?
页面之间是否需要共享数据?
用户是否频繁交互,像在用微信或支付宝一样?
如果答案是否定的,那你可能不需要 SPA。
你需要的是:
清晰的 HTML 结构
简洁的 CSS 动画
浏览器原生的导航和缓存
少量 JS,用于增强交互,而不是主导架构
结语:用现代 CSS,构建更好的 Web
Jono 的文章让我意识到:我们已经拥有了构建“流畅体验”的能力,只是很多人还没意识到。
现代 CSS,不只是样式语言,它正在成为前端架构的核心力量。View Transitions、Speculation Rules、bfcache等这些技术正在悄悄改变我们对“网站”的定义。
未来的 Web,不是 JS 驱动的模拟器,而是浏览器原生能力的协奏曲。
所以在线配资交易·加杠网,别再为“像 App 一样”而 SPA 了。用现代 CSS,构建真正快速、优雅、可维护的网站吧!
联丰优配提示:文章来自网络,不代表本站观点。