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 设计、边界场景、渲染器兼容等任何建议。

相关推荐
平头哥技术团队4 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
yume_sibai5 小时前
Element Plus 数据展示组件完全指南(15个核心组件)
前端·javascript·vue.js
剑之所向7 小时前
.NET 官方`System.Threading.Channels`
前端·javascript·数据库
渡我白衣9 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
八角丶10 小时前
Node 网络编程 —— TLS 模块
javascript·后端·node.js
倔强的石头10610 小时前
【Linux指南】动静态库系列(七):符号表与重定位:链接器如何把函数调用接起来
linux·前端·javascript
图扑软件10 小时前
中篇・运笔|统一 DataModel 底座,HT UI 组件万物同源
javascript·低代码·ui·性能优化·数据可视化
小小尚@12 小时前
WebGIS/ECharts 地图开发|MapLand 在线行政区划边界一键下载 GeoJSON 工具
前端·javascript·echarts
葡萄城技术团队12 小时前
工业数据可视化:使用活字格 AIcoding + Three.js 构建轻量化三维设备监控大屏
开发语言·javascript·信息可视化
默_笙12 小时前
🚍 一条 Todo 的奇幻漂流:TypeScript 全栈类型安全的"护照检查"
前端·javascript