# @cervello/react 中文文档

规范地址：https://npmcn.com/package/%40cervello/react/

版本：6\.0\.0
npm 元数据更新时间：2026-09-28T19:43:04.365Z
中文译文更新时间：2026-11-09T16:22:50.405Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cervello/react
原文对照：https://npmcn.com/package/%40cervello/react/?lang=original
项目主页：https://www.cervello.dev/
源码仓库：https://github.com/chempogonzalez/cervello

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：145 kB，23 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react \>= 18\.2\.0
- 首次发布：2022-07-24T20:39:09.272Z
- 最新版本发布：2026-09-28T19:43:03.891Z
- 近 30 天下载量：2212（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：69（近 12 个月 3 个）

## 中文简介

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

## 安装

```sh
npm install @cervello/react
```

也可以使用：`pnpm add @cervello/react`、`yarn add @cervello/react`、`bun add @cervello/react`

## README

# 塞维罗

[![npm version](https://img.shields.io/npm/v/@cervello/react?color=blue&style=flat-square)](https://www.npmjs.com/package/@cervello/react) [![bundle-size](https://img.shields.io/bundlephobia/minzip/@cervello/react/latest?color=orange&style=flat-square)](https://bundlephobia.com/package/@cervello/react@latest)

[![](https://github.com/chempogonzalez/cervello/blob/main/assets/emoji-logo.png)](https://www.cervello.dev/)

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

  
  
[

**文档网站**

](https://www.cervello.dev/)  

## 🚀 **特征**

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

## 📦 **安装**

```bash
# NPM
npm install @cervello/react

# PNPM
pnpm add @cervello/react

# YARN
yarn add @cervello/react
```

## 💻 **快速使用**

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

```ts
// - 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参考文献和更多实例: [文档网站](https://www.cervello.dev/)

* * *

  

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

## 常见问题

### @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 和提交记录判断。

