0flux

中文文档
0.0.4发布于 2015/12/07ISCTypeScriptCommonJS零依赖

Typed state management

原始使用文档

Ø Flux

A small, typed state management library.

Example:

'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 共发布 4 个版本,首次发布于 2015/12/05;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.4latest2015/12/0710 年前
0.0.32015/12/0510 年前
0.0.22015/12/0510 年前
0.0.12015/12/0510 年前

关于 0flux 的常见问题

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