0flux 中文文档教程
Ø Flux
一个小型的类型化状态管理库。
例子:
'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);
Ø 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);
更多
你可能也喜欢
- 2u 中文文档教程
- @4geit/rct-matrix-component 中文文档教程
- @4tw/vue-cli-plugin-vuetify-preset-4tw 中文文档教程
- @6i/ink-tools 中文文档教程
- @aaa-backend-stack/build-tools 中文文档教程
- @aarnet/jupyterlab-ext-aarnet-help 中文文档教程
- @aaronpowell/apollo-server-logger-appinsights 中文文档教程
- @aatif-packages/tools 中文文档教程
- @abai/search 中文文档教程
- @absolunet/pinki 中文文档教程