
Skybridge 状态管理全解析useViewState 如何让你的 MCP App 记住每一次操作【免费下载链接】skybridgeSkybridge is a full-stack TypeScript framework for MCP Apps and ChatGPT Apps. Type-safe. React-powered. Platform-agnostic.项目地址: https://gitcode.com/gh_mirrors/skybr/skybridge如果你正在用 Skybridge 开发MCP App或ChatGPT App一定会遇到这个痛点用户关掉界面再打开购物车空了、筛选条件没了AI 也不知道用户刚才点了什么。Skybridge 状态管理的核心 Hook ——useViewState就是解决这件事的它让 UI 状态持久化、可恢复还能同步给大模型读取。本文将带你快速搞懂它的用法、生命周期和最佳实践。为什么 useState 不够用MCP App 的界面View由宿主应用如 ChatGPT、Claude挂载和卸载。普通 ReactuseState有两个致命问题一卸载就清零宿主重新挂载视图时本地状态全部丢失模型看不见AI 永远不知道你界面上显示的是什么useViewState是一个useState的“平替”一行代码同时解决这两个问题源码位于 use-view-state.ts。useViewState 基本用法三行代码上手import { useViewState } from skybridge/web; type CarouselState { sort: newest | price }; function Carousel() { const [state, setState] useViewStateCarouselState({ sort: newest }); // 用户切换排序后即使视图被重新挂载state.sort 依然保留 }它返回一个和useState完全一致的[state, setState]元组支持值更新和函数式更新setState((prev) ({ ...prev, count: prev.count 1 }))熟悉 React 就能零成本迁移。官方示例 use-view-state-tab.tsx 就是一个点击加一、关闭重开不丢数的计数器。状态生命周期什么时候被记住什么时候被隔离这是新手最容易困惑的部分官方文档 use-view-state.mdx 给出的规则非常清晰场景状态表现同一视图实例重渲染 / 重新挂载✅ 状态保留关闭对话后重新打开✅ 视图带着之前的状态恢复切换显示模式内联 ↔ 全屏✅ 状态保留一次新的工具调用 独立的空白状态从默认值开始另外要注意视图状态是尽力而为的不是持久化数据库。在 Claude 中随着其他视图增多较旧的状态可能被挤出视图会恢复到defaultState。AI 如何看到你的状态这是 Skybridge 状态管理与普通前端框架最大的区别结构化共享useViewState的值会作为结构化内容在下一轮对话时暴露给模型。用户问我购物车里有什么AI 能直接回答多实例只露一个同一视图有多个实例时模型通常只看到最近一次更新的那个ChatGPT 的显示模式差异PiP 或全屏视图的状态更新总会推送给模型内联视图只在挂载后、首轮对话前推送配合 />选择指南useState、useViewState 还是 createStore官方决策表见 state.mdx建议这样分工纯临时 UI 状态悬停、动画→ 普通useState模型不需要知道单组件需要持久化筛选、选中项、草稿→useViewState多组件共享、复杂变更购物车→createStore它是 Zustand 的薄封装共享同一套生命周期一个经典错误是把模型看过的数据重复塞进每个通道。状态、data-llm文案、工具返回内容各司其职不要互相复制。真实项目里长什么样官方电商示例 carousel/index.tsx 用useViewState持久化了选中商品、滚动位置和规格用户从全屏详情返回轮播时滚动位置精确恢复const [nav, setNav] useViewStateViewState({ selectedId: null, scrollLeft: 0, spec: null, });完整的状态管理理念讲解可以参考 docs/build/state.mdxAPI 细节见 docs/api-reference/use-view-state.mdx。小结让 MCP App 拥有记忆的三个要点useViewState是持久化的 useState跨挂载、跨重开对话保留状态并自动共享给大模型按谁需要看分配状态模型需要的用useViewState纯视觉的用useState默认值只是兜底宿主已有持久化状态时以持久化值为准掌握这一层你的 MCP App 就不再是每次打开都是陌生人而是真正记住用户每一次操作的智能界面。【免费下载链接】skybridgeSkybridge is a full-stack TypeScript framework for MCP Apps and ChatGPT Apps. Type-safe. React-powered. Platform-agnostic.项目地址: https://gitcode.com/gh_mirrors/skybr/skybridge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考