mizu.js 是一个轻量级的 HTML 模板库,旨在简化 Web 开发。它使用简单的 JavaScript 表达式和 HTML 来构建网页,并且支持客户端和服务端渲染,以及多种 JavaScript 运行环境(包括所有主流浏览器)。
**主要特点:**
* **即插即用:**只需引入库,即可使用原生 JavaScript 表达式和 HTML 开始构建。
* **跨平台:**兼容各种 JavaScript 和 TypeScript 运行环境,包括所有主流浏览器。
* **任何端渲染:**通过用户友好的 API,在任何需要的地方以任何方式渲染内容。
* **可扩展:**利用开发者友好的 API 和自定义构建器,轻松挑选功能并创建自定义设置。
* **社区驱动:**构建、共享和重用自定义元素和指令,加速开发。
* **开源:**根据 AGPLv3 许可证发布,源代码可在 github.com 上获取。非商业项目或每月赞助 1 美元以上的项目可以使用 MIT 许可证条款。
**使用场景:**
* 客户端渲染:使用 IIFE 或 ESM 模式引入 mizu.js,渲染带有 *mizu 指令的子树。
* 服务端渲染:安装 mizu.js 并使用其服务端 API,例如 Mizu.render 和 Mizu.generate。
**核心概念:**
* **指令 (Directive):**mizu.js 识别 HTML 属性,指示其如何处理元素。指令使用特定的语法,例如 *name、#slot、@event 等。
* **上下文 (Context):**表达式在特定上下文中求值,其中包含所有已定义的变量和函数。可以通过用户 API 或上下文指令来定义这些内容。
* **渲染 (Rendering):**渲染过程包括求值和应用指令,递归地修改 DOM 树。
* **阶段 (Phase):**每个指令都与特定阶段相关联,决定了指令的处理顺序。
**API:**
* **用户 API:**用于渲染模板和使用指令。包含客户端 API(如 Client.render)和服务端 API(如 Server.render 和 Server.generate)。
* **开发者 API:**用于创建自定义指令和渲染器。包含 Directive 接口,提供指令执行的回调函数。
**其他信息:**
* mizu.js 目前使用 ZeroVer 版本控制,这意味着即使在先前定义的功能中,次要版本也可能会发生重大更改。
* 一些功能尚处于开发阶段,行为可能会发生更改。