VanityH – 面向前端渲染函数的优雅 Hyperscript DSL

VanityH -- 面向前端渲染函数的优雅 Hyperscript DSL

我开发了 VanityH,用来解决在原生 JS/TS、低代码引擎以及非 JSX 环境中编写 hyperscript 代码的痛点。

它是一个零依赖、超轻量的 DSL ,基于 Proxy 和闭包实现,把混乱嵌套的 h(tag, props, children) 写法,变成类似 SwiftUI / Flutter 那样清晰、链式调用的代码。

核心亮点

  • 告别嵌套地狱:DOM 结构一目了然
  • 完全不可变:写时复制,避免意外修改属性
  • 无黑魔法:行为明确,无隐式转换
  • 极致轻量:gzip 后仅约 600 字节
  • 全平台兼容:Vue、React、Preact、Snabbdom 及任何兼容 hyperscript 的渲染器

示例(Vue 3)

ts 复制代码
import { h } from "vue";
import createVanity from "vanity-h";

const { div, button, h1 } = createVanity(h);

const app = div.class("app").style("padding: 20px")(
  h1("VanityH Demo"),
  button.onClick(() => alert("Hello!"))("Click Me")
);

传统写法 vs VanityH

js 复制代码
// 之前
h("div", { class: "card" }, [h("button", { onClick: fn }, "Click")]);

// 之后
div.class("card")(button.onClick(fn)("Click"));

技术特点

  • 基于 Proxy + 闭包实现链式配置
  • 终结符式渲染逻辑
  • 完整 TypeScript 类型推导
  • MIT 开源协议

仓库:github.com/VanityH/van...

可在线试用:README 中附有 StackBlitz 示例

欢迎反馈:API 设计、边界场景、渲染器兼容等任何建议。

相关推荐
浅水壁虎29 分钟前
vue基础(第二章 )
前端·javascript·vue.js
界面开发小八哥30 分钟前
界面控件DevExtreme v26.1新版亮点——支持Angular 22
前端·javascript·angular.js·devexpress·ui开发·devextreme
mONESY2 小时前
React useState 核心原理与最佳实践:从异步更新到性能优化全解
javascript
腻害兔2 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:CRM 客户关系模块深度解析——从线索到回款,一套完整的 B2B 销售闭环是怎么搭的?
java·前端·javascript·vue.js·产品经理·ai编程
gis开发之家3 小时前
《Vue3 从入门到大神37篇》Vue3 源码详解(七):watch 与 watchEffect 源码对比——副作用是如何被追踪的?
javascript·前端框架·vue3·vue3源码
bloglin999994 小时前
langchain 和 langgraph 和 react
javascript·react.js·langchain
触底反弹4 小时前
🚀 删了数据刷新又回来?3 组件 × 4 回调 × 3 坑讲透 React 父子通信
前端·javascript·react.js
会周易的程序员6 小时前
js-shm: 高性能 Node.js 共享内存模块
开发语言·javascript·c++·node.js·共享内存·shm
带娃的IT创业者6 小时前
重新定义前端构建速度:深度解析 SWC 如何用 Rust 颠覆 JavaScript 工具链
前端·javascript·rust·前端构建·swc
新中地GIS开发老师7 小时前
零基础WebGIS开发入门 | GeoJSON数据持久化
前端·javascript·gis·webgis·三维gis开发