@fieldia/react

中文文档
0.36.1发布于 2026/10/28MITTypeScriptESM + CJS近 30 天下载 4186

对Fieldia的回放装订:在平面-DOM取景器上,以自定义字段和槽为回放组件.

中文使用文档

@ fieldia/ 反应

外地 在反应 18 和 19 中的表单: 薄壳过 @fieldia/viewer,所以一个页面看起来和行为都与任何其他框架相同.

npm install @fieldia/react
import { FieldiaForm } from '@fieldia/react';
import { createMemoryDataSource } from '@fieldia/core';
import page from './customer.page.json';

const dataSource = createMemoryDataSource();

export function Customer() {
  return <FieldiaForm page={page} dataSource={dataSource} recordId={1} skin="underline" />;
}

单位 下一个 (或任何服务器的回复),给出组件 firstPaint数字 : 它使表单在服务器上成为了第一个涂料——它的平面HTML值, 在Fieldia的外观中——浏览器在任何脚本和水合物之前显示为 然则,观者在它上面,就把它拉上来,然后,他把它装满 同时键入( e)@fieldia/viewer/server) (中文(简体) ).

// app/enquiries/[id]/page.tsx — a server component loads the record…
export default async function Page({ params }: { params: Promise<{ id: string }> }) {
  const record = await loadEnquiry((await params).id);
  const nonce = (await headers()).get('x-nonce') ?? undefined; // with a strict Content-Security-Policy
  return <Enquiry record={record} nonce={nonce} />;
}

// enquiry.tsx — …and the client component paints it first.
'use client';
export function Enquiry({ record, nonce }: { record: Values; nonce?: string }) {
  return <FieldiaForm page={page} dataSource={dataSource} recordId={record.id as number} nonce={nonce} firstPaint={{ values: record }} />;
}

自定义字段和槽内容可以是 React 组件(fieldTypes, (中文(简体) ), slots(三); useFormState(form) 给一个形式状态 作为反应状态。 打开列表页面 一行通过 onOpenRecord。 。 。 .

表格上的事件是道具,每个在每一个渲染物上读取新内容而不挂起 再来一次; onAction 可能回答按钮或 call 步骤 :

<FieldiaForm
  page={page}
  dataSource={dataSource}
  pages={pages}
  onAction={async ({ action, values }) => (action === 'check_stock' ? { values: { price: await priceOf(values.product) } } : undefined)}
  onChange={({ field, value, by }) => {}}   // by: 'person' | 'step' | 'app'
  onSave={({ recordId, values }) => {}}
  onSend={({ values }) => {}}
  onStep={({ step }) => {}}
  onRun={({ id, result }) => {}}
/>

host 财务报告和审定财务报表 onOpen 是查看者自己的选项(参见 @fieldia/viewer; 计 数 控件来源 ref 或者说 onReady 已经 on, (中文(简体) ), setValues 财务报告和审定财务报表 run。 。 。 .

一个页面带有 continueLater 打开您服务器上保存的草稿 resume={new URLSearchParams(location.search).get('resume') ?? undefined},则 键后继续链接 onDraft={({ key, later, saved }) => …} 已被告知每份草稿。 一个新的 resume 打开这个草案,作为一个新的 recordId 打开记录.

从链接中填充字段的页面( E)prefill阅读浏览器的地址; 在服务器上或在其他页面中显示的应用程序会给出链接 知道吗 url="https://homes.example/enquiry?agent=mona&unit=B-12"页:1 ?… 部分,或 url={{ agent: 'mona' }}。一个新的 url 从它开始表格.

在你的应用程序离开前,请检查一下: await handle.form.leave() 在路由更改之前, 在卸载之前 <FieldiaForm>, (中文(简体) ), 在改变再次挂起它的道具之前page, (中文(简体) ), form, (中文(简体) ), dataSource, (中文(简体) ), recordId, (中文(简体) ), resume, (中文(简体) ), url, (中文(简体) ), user, (中文(简体) ), context, (中文(简体) ), dir, (中文(简体) ), labels, (中文(简体) ), fieldTypes, (中文(简体) ), slots名称 内 functions) (中文(简体) ). 反应 立即卸下,所以没有别的东西能把人留在那里。 等着救赎 在路上,然后问 "放弃你的改变?" 只有当他们的工作有危险, 当他们选择逗留的时候,他们回答是虚假的. warnOnLeave 拥有浏览器本身 返回, 重新装入或关闭标签先询问, 而有更改没有保存 .

投出场或槽的组件按其制成的位置保存: 它显示一个小盒子 命名它, onError={(error, where) => …} 被告诉,和 其余的表格会挂起 否则反应会毁掉一切 在最接近的误差边界下,与它同为表单。 查看器拒绝的一页 说为什么在表格的位置, onError 并保留应用程序的挂载: 没有什么被扔进反应。 麻省理工学院有执照.

版本与发布记录

@fieldia/react 共发布 50 个版本,首次发布于 2026/10/02;过去 12 个月发布了 50 个版本。

版本发布日期距今
0.36.1latest2026/10/2817 天前
0.36.02026/10/2817 天前
0.35.32026/10/2818 天前
0.35.22026/10/2718 天前
0.35.12026/10/2619 天前
0.35.02026/10/2619 天前

关于 @fieldia/react 的常见问题

@fieldia/react 是什么?

对Fieldia的回放装订:在平面-DOM取景器上,以自定义字段和槽为回放组件.

如何安装 @fieldia/react?

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

@fieldia/react 支持 TypeScript 吗?

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

@fieldia/react 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@fieldia/react 可以商用吗?

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

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

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

@fieldia/react 还在维护吗?

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