# 0flux 中文文档

规范地址：https://npmcn.com/package/0flux/

版本：0\.0\.4
npm 元数据更新时间：2022-06-12T14:05:11.497Z
中文译文更新时间：2026-10-31T12:34:33.273Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/0flux
原文对照：https://npmcn.com/package/0flux/?lang=original
源码仓库：https://github.com/reissbaker/0flux

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

- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2015-12-05T08:49:15.485Z
- 最新版本发布：2015-12-07T01:50:13.902Z
- 已发布版本数：4（近 12 个月 0 个）

## 中文简介

类型化状态管理

## 安装

```sh
npm install 0flux
```

也可以使用：`pnpm add 0flux`、`yarn add 0flux`、`bun add 0flux`

## README

# Ø通量

一个小型的、类型化的状态管理库。

例子:

```typescript
'use strict';

import * as Flux from '0flux';

interface TodoAction {
  name: string;
  id: number;
}

const container = new Flux();

const dispatcher = {
  addTodo: container.action<TodoAction>(),
  removeTodo: container.action<TodoAction>(),
};

interface State {
  todos: TodoAction[];
}

const todoState = container.state<State>((getState, setState) => {
  dispatcher.addTodo.bind((todoAction) => {
    setState({
      todos: getState().todos.concat([ todoAction ])
    });
  });

  dispatcher.removeTodo.bind((todoAction) => {
    setState({
      todos: getState().todos.filter((item) => {
        return item.id !== todoAction.id;
      })
    });
  });

  return {
    todos: []
  };
});

const julia = dispatcher.addTodo.dispatch({
  id: 0,
  name: 'julia'
});

const clone = dispatcher.addTodo.dispatch({
  id: 1,
  name: 'evil julia clone'
});

console.log('evil clone detected:');
console.log(todoState.current);

dispatcher.removeTodo.dispatch(clone);

console.log('evil clone eliminated:');
console.log(todoState.current);
```

## 常见问题

### 0flux 是什么？

类型化状态管理

### 如何安装 0flux？

在项目目录运行 npm install 0flux，或使用 pnpm add / yarn add / bun add。

### 0flux 支持 TypeScript 吗？

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

### 0flux 支持 ESM 还是 CommonJS？

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

### 0flux 可以商用吗？

0flux 使用 ISC 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### 0flux 还在维护吗？

最新版本 0\.0\.4 发布于 2015/12/07（10 年前）；至今共发布 4 个版本，其中过去 12 个月发布了 0 个；首次发布于 2015/12/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

