@declarion/react

中文文档
0.244.0发布于 2026/11/12MITTypeScriptES Module近 30 天下载 2.4万

反应SDK为"声明",由Schema驱动的商业应用平台.

中文使用文档
文档目录6 节
  1. 安装
  2. 子路径导出
  3. 图标
  4. Vite 插件: 为客户端 staleness 处理建立身份
  5. 许可证
  6. 运行时间

@ 声明/反应

反应 SDK 用于 声明,由计划驱动的商业应用平台.

声明允许您从 YAML 计划构建生产业务应用程序: 实体、屏幕、导航、动作和处理器。 这个软件包是Resact客户端,它使这些计划成为针对一个声明API后端的工作UI.

安装

pnpm add @declarion/react
# peer deps:
pnpm add react react-dom

子路径导出

导入目的
@declarion/react主反应条目——组件,钩子,类型
@declarion/react/icons轻量级图标渲染—— DynamicIcon + 键 setIconRegistry +内置甘油克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克 对于使导航从 /api/schema。 。 。 .
@declarion/react/styles.css预编译的 Tailwind 输出;一次从 SPA 根导入 。 Inter + JetBrains Mono号(SIL OFL)作为兄弟 .woff2 文档, 相对引用 - 您的捆绑者发布它们 .
@declarion/react/vite只有节点的 Vite 插件 — 在构建时选择客户端 staleness 处理

图标

一个 DSL icon: 值是针对 卢西德 (默认图标) 图书馆,~1500 glyphs),取名. 决议令:消费者宣布 icons: 输入已使用 /api/schema (svg / url / 清晰化的别名)- 所编的内置 套数(src/components/primitives/Icons.tsx薄薄的包裹 在路西德,捆绑 急于即时渲染) ^ 卢西德取名取名 (懒惰) → folder一个主机 含有一个组件的任何图标 :

import { setIconRegistry, DynamicIcon } from "@declarion/react/icons";

// once, after the /api/schema fetch (it carries any custom icons):
setIconRegistry(schema.icons ?? {});
// anywhere, any depth - the registry is a module singleton:
<DynamicIcon name={navItem.icon} size={16} />

setIconRegistry 是模块级存储( 镜像) registerScreen(三); DynamicIcon 订阅方式 useSyncExternalStore,因此替换注册(身份切换) 重报每个图标。 由Lucide解析的空白名称 - 不需要注册条目 . 卢西德的一角 dynamicIconImports 地图只通过 import() 留下来 那是从急躁的、 Icons.tsx set 是树形的命名导入. 见 examples/embed-demo 一个工作主持人.

编译的内置套装只是带有SDK的命名 Luside-组件图 { size, cls, style } 道具适配器;没有手拉式SVG,也没有编码. 要在急切集中添加一个名称,请在 Icons.tsx; 里面没有的东西 不管来自卢西德 懒惰地解决.

Vite 插件: 为客户端 staleness 处理建立身份

SDK飞船带有一个微小的Vite插件,可以发出 bundle-fingerprint.txt 旁边 index.html 在每次生产建设之后 声明服务器在启动时读取,并将其折叠到盖有每个附件的构建中 /api/* 答复X-Declarion-Version) (中文(简体) ). SDK的内置版本监视器在每次API响应上检测出漂移,在焦点/上线/60s探测上,或者默默地使schema查询无效(schema- only change),或者促使用户重新加载(aget/binary change). 通过 BroadcastChannel。 。 。 .

将插件添加到您的消费应用程序 vite.config.ts数字 :

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { declarionFingerprintPlugin } from "@declarion/react/vite";

export default defineConfig({
  plugins: [react(), declarionFingerprintPlugin()],
});

就是这样——没有客户API用手接线. 版本监视器在内部挂起 <App>中,反应头观察员被包含在 apiFetch,而吐司槽重用现有的 Sonner <Toaster/>. 该插件在每一个声明部署模式(本地SDK链接,npm被绑定,预建的prod图像)中工作,因为它运行于消费者建设时间,无论SDK本身来自何处.

未采用插件的消费者却轻而易举地降解:服务器日志在启动时一次倒回二进制只进行漂移检测,其余系统继续工作——漂移仍然被检测出,只是将漂移更保守地归类为"资产/平移",所以用户得到重装即时而非静态无效.

需要浏览器支持 BroadcastChannel 用于跨塔协调——Chrome 54+,Firefox 38+,Safari 15.4+. 在没有它的环境中,"内"检测仍然有效;"跨""外"被悄悄地跳出.

许可证

麻省理工学院. 见 LICENSE。 。 。 .

运行时间

SDK向一个声明运行时间服务器说话. 运行时间为专有商业软件 - 联系人 [email protected] (中文(简体) ) 许可证发放.

版本与发布记录

@declarion/react 共发布 287 个版本,首次发布于 2026/04/16;过去 12 个月发布了 287 个版本。

版本发布日期距今
0.244.0latest2026/11/12今天
0.241.02026/11/11今天
0.240.02026/11/11今天
0.239.02026/11/11今天
0.238.02026/11/11今天
0.237.02026/11/11今天

关于 @declarion/react 的常见问题

@declarion/react 是什么?

反应SDK为"声明",由Schema驱动的商业应用平台.

如何安装 @declarion/react?

在项目目录运行 npm install @declarion/react,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.0.0)、react-dom(^19.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@declarion/react 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@declarion/react 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@declarion/react 可以商用吗?

@declarion/react 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@declarion/react 的下载量有多少?

根据 npm 官方下载统计,@declarion/react 在 2026/10/12 – 2026/11/10 这 30 天内被下载 23,836 次,日均约 795 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@declarion/react 还在维护吗?

最新版本 0.244.0 发布于 2026/11/12(今天);至今共发布 287 个版本,其中过去 12 个月发布了 287 个;首次发布于 2026/04/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。