0.2.10 • Published 2 years ago

react-event-state v0.2.10

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Intro

用事件实现的 react 数据管理器;它的原理是每次改变数据时触发事件,在一个地方监听事件去重新获取 state 和生成新的 stateId; 可以创建任意多个的类,任意嵌套,以你舒服的方式组织数据类, 简单是它最大的特点;

use event for react state manager, It use hook listen event change and change stateId; you can use any class as you want, use the way you like to organize state code. simple and easy to use.

api

it provider to api just like redux, useEventState and useEventSelector;

...
const [state, stateId] = useEventState(state);
const [{...}, stateId] = useEventSelector(state);

how to use

npm install react-event-state
//state.ts
import { EventState } from 'react-event-state';

const StateEvent = {
  UpdateIndex1: 'UpdateIndex1',
  UpdateIndex2: 'UpdateIndex2',
};
class State extends EventState {
  public index1 = 0;
  public index2 = 0;
  constructor() {
    super([StateEvent.UpdateIndex1, StateEvent.UpdateIndex2]);
  }
  public updateIndex1() {
    this.index1 += 1;
    this.emit(StateEvent.UpdateIndex1);
  }
  public updateIndex2() {
    this.index2 += 1;
    this.emit(StateEvent.UpdateIndex2);
  }
}
export const appState = new State();

//app.tsx
import { appState } from './state';
import { useEventState, useEventSelector } from 'react-event-state/hooks';

export function App() {
  const [state] = useEventState(appState);
  const [{ sum }] = useEventSelector((state) => {
    return { sum: state.index1 + state.index2 };
  });
  return (
    <>
      <button onClick={() => state.updateIndex1()}>index1:{state.index1}</button>
      <button onClick={() => state.updateIndex2()}>index2:{state.index2}</button>
      <span>{sum}</span>
    </>
  );
}
0.2.10

2 years ago

0.2.1

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.9

2 years ago

0.2.8

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.0

2 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago