@assistant-ui/store
具有React上下文集成功能的基于 Tap 的状态容器. 桥梁 @assistant-ui/tap 资源通过 useAui, (中文(简体) ), useAuiState, (中文(简体) ), AuiConfig,以及 <AuiProvider>。 。 。 .
store 给助手的运行时间层提供动力。 多数用户不直接安装; 访问 @assistant-ui/react 换句话说.
框架中立条目
@assistant-ui/store/client 曝光情况 createAssistantClient,将同一客户端建在一个独立自带根中,没有反应渲染器。 非反应绑定通过此条目消耗商店; 无反应消费者额外化名 react 改为 @assistant-ui/tap/standalone-shim 在他们的捆绑。 这个 react 端点依赖性对于此配置是可选的.
安装
npm install @assistant-ui/store @assistant-ui/tap
使用量
import { resource } from "@assistant-ui/tap";
import { useState } from "react";
import {
useAui,
useAuiState,
AuiProvider,
AuiConfig,
type ClientOutput,
} from "@assistant-ui/store";
declare module "@assistant-ui/store" {
interface ScopeRegistry {
counter: {
methods: {
getState: () => { count: number };
increment: () => void;
};
};
}
}
const useCounterClient = (): ClientOutput<"counter"> => {
const [state, setState] = useState({ count: 0 });
return {
getState: () => state,
increment: () => setState({ count: state.count + 1 }),
};
};
const CounterClient = resource(useCounterClient);
function App() {
const config = AuiConfig({ counter: CounterClient() });
return (
<AuiProvider config={config}>
<Counter />
</AuiProvider>
);
}
function Counter() {
const count = useAuiState((s) => s.counter.count);
const aui = useAui();
return <button onClick={() => aui.counter().increment()}>{count}</button>;
}
完整的 API 参考(客户,衍生客户,事件, useClientLookup, (中文(简体) ), useClientList时 助理-ui.com/docs/商店/参考书目。 。 。 .