SuperAPI AI 工具集

solid-syntax-stores

前端与建站

查看项目

更新于 10-16 06:18

技能介绍

用途:面向 SolidJS 开发,处理复杂嵌套状态、对象或数组更新,并在 signal 与 store 之间做出选择。

主要能力:介绍 store 原语,包括 createStore(基于代理的嵌套响应式状态)、setStore(路径语法精准更新)、produce(Immer 风格可变写法)、reconcile(API 响应数据差异比对)、unwrap(剥离响应式代理)、createMutable(直接可变 store)。提供 signal 与 store 的决策树与语法对比,并给出常见错误与正确写法对照。

必要用法:所有 store 工具均从 "solid-js/store" 导入,而非 "solid-js"。对象或数组状态用 createStore,原始值用 createSignal。读取用属性访问 store.x,写入用 setStore("x", 1),嵌套更新用 setStore("a", "b", "c", value)。数组可按索引、索引数组、范围(from/to/by)或过滤谓词更新;末尾为对象时执行浅合并。同步 API 数据用 setStore("todos", reconcile(todos));传给非 SolidJS 代码前用 unwrap 转普通对象。

适用场景:嵌套对象、逐项更新的对象数组、多字段表单、API 响应数据等。

限制:不要解构 store,不要以函数方式调用 store 属性,不要用展开替换整个 store,不要在未使用 createMutable 时直接修改。produce 不支持 Set 与 Map。createMutable 仅在迁移 MobX/Vue 或包装可变第三方 API 时使用。SolidJS 2.x 的 store setter 默认改为 draft-first,并支持 createStore(fn) 派生可写模式,路径语法与 produce/reconcile 仍可用。