还记得我们是怎么从「PHP直接渲染页面」进化到「前后端分离」的吗?
起初是因为希望前端体验更流畅、交互更灵活,于是我们选择了「服务端返回 JSON + 前端自己拼接 UI」。慢慢地,React、Vue 上场,状态管理也来了,组件拆分、路由、API 层、loading 状态……
等等,我们本来是为了更简单,结果把事情越搞越复杂?
想一想:服务器端其实已经知道用户是谁、有啥权限、看到什么数据,它完全可以直接把该有的按钮、表格、下拉菜单一并渲染好,结果现在我们非要前后端拉扯来回几次,再在浏览器里动态拼拼凑凑。
前端越来越重,后端变成了纯数据提供商。可有些事,真的只能前端做吗?
一个常见的管理后台列表页,背后通常有这些逻辑:
你猜这是谁来写的?
没错,全给前端了,而且后端还得“配合”暴露一堆接口。可问题是:这些逻辑,后端本来就知道,还能一次性返回结果,非要两边来回折腾。
甚至有时候,前端只是想改一个按钮的显示条件,都要等后端接口加字段,再改前端逻辑……
说实话,这不叫分工,这叫拆得太过头了。
这时候,HTMX 出现了。
HTMX 是什么?一句话:让浏览器接受 HTML 响应并直接替换 DOM 元素,不再需要前端框架做 UI 拼装。也就是说,服务器渲染一个按钮或表格的片段,浏览器自动放进去就完了。
来看几个典型场景对比:
场景 | 传统做法 | HTMX 做法 |
---|---|---|
列表渲染 | 拉 JSON + 手动 map 渲染 | 后端返回一个 <table> 就好 |
分页处理 | 维护分页状态 + loading | 点击分页按钮触发 /list?page=2,直接返回渲染好的页面片段 |
表单提交 | 提交 JSON,前端处理结果显示 | 提交表单返回一个 success 弹窗 HTML 片段 |
权限控制 | 前端拿权限字段,判断显示 | 服务器按权限返回对应按钮组 |
弹窗加载 | 前端组件加载 + 事件绑定 | 点按钮,后端返回 modal 内容片段插入页面 |
你不需要再手写太多状态管理代码、也不需要框架来操控 UI 状态,一切交给服务器,它知道怎么做得更合理。
别看 HTMX 听起来新,其实你本地跑起来一点也不麻烦,只要你有个干净的后端环境就行。
推荐工具: ServBay —— 它是一款 macOS & Windows 的本地开发环境管理器,支持一键运行 PHP、Python、PostgreSQL、Redis 等服务。特别适合做以下这些事情:
📦 安装后只需几步即可启动一个后端服务,HTMX 示例项目跑起来只要几分钟。想试试“回归服务器渲染”的开发方式?这个组合真的轻量又优雅。
有人可能会问:我们不早就用过服务器渲染了吗?为啥又回去了?
区别在于:这次我们不再整页刷新了,而是只刷新需要变的那一小块。
可以说:我们不是回到了老办法,而是用上了现代能力,走了一条更加简单直接的路线。
别误会,这不是一场「框架革命」。
HTMX 不是来灭掉 React、Vue 的,它是给那些**“80% 是表格和表单”**的系统一个更轻量的选择:
适合 HTMX 的场景:
而复杂交互、多状态切换、需要实时响应的富应用(比如:Web IDE、多人协作工具),当然还是前端框架的天下。
但你不需要每个项目都上 React + 状态管理 + API 层 + TS + CSS-in-JS 吧?
服务器从来不是“只会提供 JSON”。
它知道用户是谁,有权限信息、登录状态、数据模型,它完全可以直接输出页面该长什么样。
与其前后端来回配合做一个按钮,不如直接让服务器返回它该有的样子。
HTMX 给了我们这样一种新的方式:
如果你也受够了为了一个按钮改三层代码,不妨给 HTMX 一个机会,让服务器“说人话”,让开发回归本质:直接、有效、有趣。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。