@cerebral/react

中文文档
5.0.0发布于 2026/03/20MITTypeScriptCommonJS构建来源已验证近 30 天下载 1.4万

大脑反射视图

中文使用文档
文档目录8 节
  1. 安装
  2. 集装箱
  3. 连接
  4. 函数组件(建议)
  5. 类组件
  6. 动态依赖
  7. 道具变形器
  8. 类型脚本支持

@ 大脑/ 反应

反应 查看大脑状态管理的整合.

安装

npm install @cerebral/react react react-dom

集装箱

容器组件将您的 Craberal app 连接到您的反应组件 :

import React from 'react'
import { createRoot } from 'react-dom/client'
import App from 'cerebral'
import { Container } from '@cerebral/react'
import AppComponent from './components/App'
import main from './main'

const app = App(main)

const root = createRoot(document.querySelector('#app'))
root.render(
  <Container app={app}>
    <AppComponent />
  </Container>
)

连接

这个 connect 函数将大脑状态和序列绑定在您的反应组件上:

import React from 'react'
import { state, sequences } from 'cerebral'
import { connect } from '@cerebral/react'

export default connect(
  {
    foo: state`foo`,
    onClick: sequences`onClick`
  },
  function MyComponent({ foo, onClick }) {
    return <div onClick={() => onClick()}>{foo}</div>
  }
)

类组件

import React from 'react'
import { state, sequences } from 'cerebral'
import { connect } from '@cerebral/react'

export default connect(
  {
    foo: state`foo`,
    onClick: sequences`onClick`
  },
  class MyComponent extends React.Component {
    render() {
      const { foo, onClick } = this.props
      return <div onClick={() => onClick()}>{foo}</div>
    }
  }
)

动态依赖

可以动态地访问大脑状态和组件内部的序列而无需预先声明:

import React from 'react'
import { state, sequences } from 'cerebral'
import { connect } from '@cerebral/react'

export default connect(function MyComponent({ get }) {
  const foo = get(state`foo`)
  const onClick = get(sequences`onClick`)

  return <div onClick={() => onClick()}>{foo}</div>
})

道具变形器

在道具到达你的组件之前,您可以通过添加变压器函数来转换道具:

import React from 'react'
import { sequences, state } from 'cerebral'
import { connect } from '@cerebral/react'

export default connect(
  // 1. Define cerebral dependencies
  {
    foo: state`app.foo`,
    onClick: sequences`app.onClick`
  },
  // 2. Transform props before they reach the component
  (cerebralProps, componentProps, get) => {
    return {
      foo: `Label: ${cerebralProps.foo}`,
      onClick: () => cerebralProps.onClick({ id: componentProps.id })
    }
  },
  // 3. Your component receives the transformed props
  function App({ foo, onClick }) {
    return <div onClick={onClick}>{foo}</div>
  }
)

变压器函数需要三个参数:

  • 大脑技术: 来自大脑状态和序列的值
  • 组件选项: 父组件传递的道具
  • 起来: 解决大脑标记和计算值的函数

类型脚本支持

对于TypeScript用户,您可以在您连接的组件中添加静态打字. 见 类型脚本文档 详细情况.

版本与发布记录

@cerebral/react 共发布 294 个版本,首次发布于 2017/09/04;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
5.0.0latest2026/03/207 个月前
5.0.0-1773966503162next2026/03/207 个月前
5.0.0-17739658710852026/03/207 个月前
4.3.32025/06/061.4 年前
4.3.3-17491982820702025/06/061.4 年前
4.3.22025/03/261.6 年前

其他发布通道:canary → 4.0.0-1527708491686,next → 5.0.0-1773966503162。

关于 @cerebral/react 的常见问题

@cerebral/react 是什么?

大脑反射视图

如何安装 @cerebral/react?

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

@cerebral/react 支持 TypeScript 吗?

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

@cerebral/react 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@cerebral/react 可以商用吗?

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

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

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

@cerebral/react 还在维护吗?

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