@assistant-ui/store

中文文档
0.3.22发布于 2026/10/20MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 888.3万

Tap-based state management for @assistant-ui

原始使用文档
文档目录3 节
  1. Framework-neutral entry
  2. Installation
  3. Usage

@assistant-ui/store

npm version GitHub stars

Tap-based state container with React Context integration. Bridges @assistant-ui/tap resources into React via useAui, useAuiState, AuiConfig, and <AuiProvider>.

store powers the runtime layer of assistant-ui. Most users do not install it directly; reach for @assistant-ui/react instead.

Framework-neutral entry

@assistant-ui/store/client exposes createAssistantClient, which builds the same client inside a standalone tap root with no React renderer. Non-React bindings consume the store through this entry; react-less consumers additionally alias react to @assistant-ui/tap/standalone-shim in their bundler. The react peer dependency is optional for exactly this configuration.

Installation

npm install @assistant-ui/store @assistant-ui/tap

Usage

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>;
}

Full API reference (clients, derived clients, events, useClientLookup, useClientList) at assistant-ui.com/docs/store/api-reference.

版本与发布记录

@assistant-ui/store 共发布 57 个版本,首次发布于 2025/11/21;过去 12 个月发布了 57 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.22latest2026/10/2018 天前
0.3.212026/10/1623 天前
0.3.202026/10/1325 天前
0.3.192026/10/1128 天前
0.3.182026/10/0929 天前
0.3.172026/10/061 个月前

关于 @assistant-ui/store 的常见问题

@assistant-ui/store 是什么?

Tap-based state management for @assistant-ui

如何安装 @assistant-ui/store?

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

@assistant-ui/store 支持 TypeScript 吗?

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

@assistant-ui/store 支持 ESM 还是 CommonJS?

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

@assistant-ui/store 可以商用吗?

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

@assistant-ui/store 的下载量有多少?

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

@assistant-ui/store 还在维护吗?

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