SuperAPI AI 工具集

jotai

前端与建站

查看项目

更新于 10-16 07:30

技能介绍

用途

@json-render/jotai 是 json-render 的 Jotai 适配器,用来对接 json-render 的 StateStore 接口。它的作用是把一个 Jotai atom 接入 json-render,作为其状态后端,从而让 json-render 的读写在 Jotai 中完成,方便在使用 Jotai 做状态管理的项目里集成 json-render。

安装

npm install @json-render/jotai @json-render/core @json-render/react jotai

基本使用

核心步骤为三步:创建持有 json-render 状态的 atom、通过 jotaiStateStore 创建 StateStore 适配器、接入 StateProvider。

import { atom } from "jotai";
import { jotaiStateStore } from "@json-render/jotai";
import { StateProvider } from "@json-render/react";

// 1. Create an atom that holds the json-render state
const uiAtom = atom<Record<string, unknown>>({ count: 0 });

// 2. Create the json-render StateStore adapter
const store = jotaiStateStore({ atom: uiAtom });

// 3. Use it

{/* json-render reads/writes go through Jotai */}

接入后,json-render 的读写操作都会经过 Jotai。

与共享 Jotai Store 配合

如果应用已经在使用 Jotai 的 <Provider> 以及自定义 store,可以把该 store 传给适配器,使 json-render 与自己的组件共享同一份状态:

import { atom, createStore } from "jotai";
import { Provider as JotaiProvider } from "jotai/react";
import { jotaiStateStore } from "@json-render/jotai";
import { StateProvider } from "@json-render/react";

const jStore = createStore();
const uiAtom = atom<Record<string, unknown>>({ count: 0 });

const store = jotaiStateStore({ atom: uiAtom, store: jStore });

<JotaiProvider store={jStore}>
  <StateProvider store={store}>
    {/* Both json-render and useAtom() see the same state */}
  </StateProvider>
</JotaiProvider>

这样 json-render 与 useAtom() 看到的是同一份状态。

API

jotaiStateStore(options)

创建一个由 Jotai atom 支撑的 StateStore。

选项 类型 是否必需 说明
atom WritableAtom<StateModel, [StateModel], void> 是 持有状态模型的可写 atom
store Jotai Store 否 Jotai store 实例,默认新建一个 store。传入自己的 store 即可与 <Provider> 共享状态

适用场景

  • 项目本身使用 Jotai 作为状态管理方案,需要把 json-render 的状态纳入同一套状态体系。
  • 应用已存在自定义 Jotai store 和 <Provider>,希望 json-render 与业务组件读写同一份状态。

限制

资料未提供除上述 atom 与 store 选项外的其他配置项、兼容版本范围、性能特性或错误处理方式,相关事实暂未提供。