@cervello/react

中文文档
6.0.0发布于 2026/09/29MITTypeScriptESM + CJS零依赖近 30 天下载 2212

简单、被动、小而能表演的国家管理图书馆

中文使用文档
文档目录5 节
  1. 🚀 特征
  2. 📦 安装
  3. 💻 快速使用
  4. 💡 很高兴知道
  5. 更多深度解释或API参考文献和更多实例: 文档网站

塞维罗

npm version bundle-size

简单、被动、小而有表演的州管理库 (仅1.5克b)



文档网站


🚀 特征

  • QQ 与存储对象变化反应 (被取消的属性也!)
  • 简单并最小化 API
  • ++ Batched 更新并优化了重排
  • 懒听巢属性
  • 不可改变的变化
  • QQ 字型支持

📦 安装

# NPM
npm install @cervello/react

# PNPM
pnpm add @cervello/react

# YARN
yarn add @cervello/react

💻 快速使用

这是 简单, 如重新指定新值 到商店属性.
它将通知所有使用 useStore 钩入以重接新值.

// - store-example.ts
import { cervello } from '@cervello/react'

export const {
  store,       // Object with reactive changes
  useStore,    // Hook to listen for store or partial store changes
  reset,       // Function to reset the store to initial value
} = cervello({
  fullName: 'Cervello Store',
  address: {
    city: 'Huelva',
    /* ... */
  },
})


// Change value from anywhere
store.address.city = 'Sevilla'


// Listen for changes from components
function Address() {
  const { address } = useStore()
  return (<p>City: {address.city}</p>)
}


// Just listen for changes in the `city` property
const AddressWithSelector = () => {
  const { address } = useStore({
    select: ['address.city']
  })

  return (<p>City: {address.city}</p>)
}

💡 很高兴知道

  • 已选中更改:变异被联合并冲出每个微任务一次. onChange编号 :afterChange 以数组方式接收整批( 不要变异—— 它可能由订阅者共享) .
  • 没有虚假的更新: 指定内容等值(同样是原始的,或具有相同内容的平面对象——密钥顺序并不重要)不会通知或重交. 阵列, nonReactive 对象和反应元素总是通知。 一个在写完之后已经制作的组件(例如调用操作器) setState 然后写到店里)不会因为那封信而再次被重新发回.
  • 嵌入对象为活视图数字 : const { address } = useStore() (或 const a = store.address)继续指向商店的当前数据,即使在之后 store.address = {...}, (中文(简体) ), store.$value = {...} 或者说 reset(),所以通过它写 总是更新商店。 如果其路径停止为对象(store.address = null),通过旧的手柄写出.
  • $value 总是复制: 读取 store.$value 返回深克隆,并 store.$value = obj (比如说) cervello(obj) 财务报告和审定财务报表 reset()(a) 储存一个深层克隆体 obj - 变异 obj 之后不会碰商店。 偏爱 { ...store.$value, x } 结束 { ...store, x } 当建立新值时.
  • 热组件: 通过 select: ['path', 'nested.*'] 改为 useStore 因此组件只为这些路径重新发回;没有它,它就重新发回每个商店的更改. 准确路径符合他们自己的写作; 'address.*' 也匹配任何嵌入在下面的东西 address当 祖先 重新分配(store.address = {...}, (中文(简体) ), store.$value = {...} 或者说 reset()),所选切片按内容进行对比,如果内容实际改变,则组件只能重递. 规则:一个组成部分只须 读取 它所选择的路径 —— 一个在渲染中读取的非选中的字段永远不会被刷新 .
  • afterChange 每次排放的起火量: 字段写作,全层替换( )store.$value = ..., (中文(简体) ), reset()和 initialValue 种子——内容平等写作从不放出,所以他们也从不放出. 对于种子来说,它被推迟到一个微任务(从未在反应渲染中). 用户( E)onChange),投出不会阻止其他订阅者,也不会后期更新:错误是同步重投.
  • 严格模式数字 : initialValue c. 具有下列特性之一: setValueOnMount 运行在每个效果上架, 每个React的合同.
  • 安全部门改革:该商店是模块范围. 按要求隔离,打电话 cervello() 通过上下文分享.
  • 复杂值 (单位:千美元)Date, (中文(简体) ), Map, (中文(简体) ), Set,类例,循环参考:用 nonReactive(...) ——保存完好(并被修复) reset())但不要引发反应.



更多深度解释或API参考文献和更多实例: 文档网站



由 Typescript 创建 ! @ @ @ 和 latin 音乐 @

版本与发布记录

@cervello/react 共发布 69 个版本,首次发布于 2022/07/25;过去 12 个月发布了 3 个版本。

版本发布日期距今
6.0.0latest2026/09/291 个月前
5.5.02026/04/296 个月前
5.4.12025/11/2011 个月前
5.4.02025/07/091.3 年前
5.4.0-beta.3beta2025/07/071.3 年前
5.4.0-beta.22025/07/071.3 年前

关于 @cervello/react 的常见问题

@cervello/react 是什么?

简单、被动、小而能表演的国家管理图书馆

如何安装 @cervello/react?

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

@cervello/react 支持 TypeScript 吗?

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

@cervello/react 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cervello/react 可以商用吗?

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

@cervello/react 的下载量有多少?

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

@cervello/react 还在维护吗?

最新版本 6.0.0 发布于 2026/09/29(1 个月前);至今共发布 69 个版本,其中过去 12 个月发布了 3 个;首次发布于 2022/07/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。