1.0.7 • Published 1 year ago

storeshed v1.0.7

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

STORESHED

Зачем?

Для контроля ререндеров компонентов при изменении глобального стейта. Данный стейт менеджер позволяет полностью контролировать количество ререндеров компонентов.

Как пользоваться?

  1. Создаем хранилища и объединяем их в один объект. Этот объект будет передоваться в экшены.

store.ts

import { Store } from 'storeshed';

interface IState1 {
    a: string;
    b: number;
}

interface IState2 {
    a: string;
    b: number;
}
export const store1 = new Store<IState1>({a: '', b: 4});

export const useStore1 = (key: keyof IState1) => useStore(store1, key);
// ...
// another stores
// ...
export const mainStore = {
    store1,
    // another stores
}

export type TMainStore = typeof mainStore;
  1. Создаем экшены с помощью bindActions.

actions.ts

import { bindActions } from 'storeshed';

const createActions = () => {
    const add = ({store1, store2}: TMainStore, num: number) => {
        store1.dispatch('a', store.get('a') + num);
    }
    //...
    // some other actions
    //...
    return {
        add,
        //other actions
    }
}

//...
// some action creators
//...
export const actions = bindActions(mainStore, createActions());
  1. Используем все выше описанное в компоненте.

SomeComponent.tsx

export const SomeComponent: React.FC = () => {
    const num = useStore1('a');

    return ( 
        <button onClick={()=> {actions.add(5)}}>
            { num }
        </button>
    );
}
1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago