轻量DOM状态管理库
各维度得分依据公开资料与字段推算,加权后即综合评分,仅供参考。
domx 是一个面向浏览器 DOM 的轻量状态观察库,核心理念是“DOM 作为状态唯一来源”。它不引入 Redux、MobX 或 useState 式的独立状态层,而是通过 manifest 将状态标签映射到 DOM 元素,再按需读取、写入和观察变化。页面标称体积小于 1KB Gzip、7 个函数、1 个 Observer、0 依赖。
它的主要 API 很少:collect() 从 DOM 读取状态,apply() 写回 DOM,observe() 监听变化,on() 订阅底层 MutationRecords,send() 结合 fetch 发送状态并缓存,replay() 用于刷新后恢复请求,clearCache() 清缓存。manifest 支持 value、checked、text、attr:name、data:name,也允许自定义读写函数;多元素匹配时会返回数组。
集成方面,domx 明确把 htmx 作为重点场景,提供 htmx 扩展,可通过 hx-ext="domx"、dx-manifest、dx-cache 自动收集状态并随请求发送,还提供 dx:change 和 dx:replayed 事件。这使它比较适合 hypermedia 风格页面、表单筛选、搜索、局部刷新等交互。
文本未提及商业定价。项目可通过 npm install domx 安装,也可使用 unpkg CDN;页面提供 GitHub 链接,但未展示许可证,因此只能确认其以开源库形式分发,不能判断具体授权条款。它不是 SaaS,不涉及自托管服务端,通常随前端代码打包或从 CDN 加载。
优点是极轻、零依赖、API 简单,声明式 manifest 让 DOM 与状态字段关系清晰;单 MutationObserver 和 rAF 批处理也有利于减少监听复杂度。刷新恢复能力对避免用户输入丢失有帮助。
限制也明显:它更适合 DOM/htmx 驱动的轻交互,不适合大型 SPA 中复杂跨组件状态、异步数据流或严格类型建模。send/replay 使用 localStorage 缓存,文档也提示同域脚本可访问,敏感数据不应进入 manifest。抓取文本未说明 TypeScript、浏览器兼容、测试覆盖、维护团队和支持渠道。
domx 适合偏原生 DOM、htmx、渐进增强页面的前端开发者,也适合想避免大型状态管理库的小型项目。若已深度使用 React/Vue 状态生态,Redux、Zustand、MobX、Valtio 或框架内置状态可能更合适。中国访问情况文本无法判断;npm 与 unpkg 在国内网络体验可能受环境影响,实际可使用镜像、私有 npm 或自托管静态文件作为替代。
本测评基于公开资料整理,不构成购买建议,请以 domx.software 官网实际信息为准。
小于1KB零依赖前端库,适合开发者试用。
评分明细(分布与用户短评)接入中。当前展示 TG4G 综合评分,数据源自公开测评与用户反馈。