cb
Size: a a a
cb
PB
React+Redux
для собственного интереса. Сейчас решил поковыряться опять и увидел, что есть альтернатива Redux
. Вижу, что MobX
довольно давно появился и уже успел пройти довольно долгий путь изменений. Куча вариантов, как его использовать. Статьи в разные годы в разнобой вещают. Не до конца ясная документация. Вызывающие злобу примитивные, однотипные примеры Counter
и ToDo
.Counter
и хотя бы как-то отображает реальный пример приложения. store
из нескольких. Например, пусть будет rootStore
состоящий из userStore
, orgStore
и docStore
. Все описывать не буду, вот пример создания стора пользователя:const createUserStore = () => {Теперь, создаём
const store: I_UserStore = {
...,
login(login, password){console.log(login, password);},
...
};
return store;
};
rootStore
:const createRootStore = () => {Далее надо определиться с тем, как подключать
const store: I_RootStore = {
...,
userStore: createUserStore(),
...
};
return store;
};
store
. Решил делать это через контекст реакта:const RootContext = React.createContext({} as I_RootStore);После, в
const StoreProvider = ({children}: any) => {
const rootStore = useLocalStore(createRootStore)
return <RootContext.Provider value={rootStore}>
{children}
</RootContext.Provider>
};
const useRootStore = () => React.useContext(RootContext);
index.tsx
я оборачиваю <App/>
в StoreProvider
.useRootStore
и пользую по назначению. Notistack
. Как при неудачном логине вызвать экшен notistack
? Ведь login
это экшен из userStore
, а экшен enqueueSnackbar
- в snackStore
? И такого поведения может быть полно. При работе с Redux
, я просто диспатчу нужный экшен в нужном месте в thunk
. А как тут поступать - ума не приложу.MK
АН
cb
MK
cb
MK
React+Redux
для собственного интереса. Сейчас решил поковыряться опять и увидел, что есть альтернатива Redux
. Вижу, что MobX
довольно давно появился и уже успел пройти довольно долгий путь изменений. Куча вариантов, как его использовать. Статьи в разные годы в разнобой вещают. Не до конца ясная документация. Вызывающие злобу примитивные, однотипные примеры Counter
и ToDo
.Counter
и хотя бы как-то отображает реальный пример приложения. store
из нескольких. Например, пусть будет rootStore
состоящий из userStore
, orgStore
и docStore
. Все описывать не буду, вот пример создания стора пользователя:const createUserStore = () => {Теперь, создаём
const store: I_UserStore = {
...,
login(login, password){console.log(login, password);},
...
};
return store;
};
rootStore
:const createRootStore = () => {Далее надо определиться с тем, как подключать
const store: I_RootStore = {
...,
userStore: createUserStore(),
...
};
return store;
};
store
. Решил делать это через контекст реакта:const RootContext = React.createContext({} as I_RootStore);После, в
const StoreProvider = ({children}: any) => {
const rootStore = useLocalStore(createRootStore)
return <RootContext.Provider value={rootStore}>
{children}
</RootContext.Provider>
};
const useRootStore = () => React.useContext(RootContext);
index.tsx
я оборачиваю <App/>
в StoreProvider
.useRootStore
и пользую по назначению. Notistack
. Как при неудачном логине вызвать экшен notistack
? Ведь login
это экшен из userStore
, а экшен enqueueSnackbar
- в snackStore
? И такого поведения может быть полно. При работе с Redux
, я просто диспатчу нужный экшен в нужном месте в thunk
. А как тут поступать - ума не приложу.PB
PB
cb
cb
MK
V
PB
АН
MK
АН
V
PB
DI
статью от Тинькова на Хабре недавно видел. Надо поискать. Спасибо.