169 похожих чатов

@Trin4ik по поводу твоей статьи, скажи пожалуйста const

StoreContext = React.createContext(null);
это мы используем контекст типа useContext? или это от мобикс фишка?

12 ответов

18 просмотров

не, в этом и прикол, это чистый реакт, React.createContext же. mobx тут не при чём. Раньше у mobx был свой провайдер, но сейчас он не нужен

Dmitry-Kozlov Автор вопроса
Trin Zotoff
не, в этом и прикол, это чистый реакт, React.creat...

я может глупости спрошу, но без контекста мобикс не дает доступ к стору? Я думал что или контекст или стейт менеджер.. не думал что они нужны вместе...

Dmitry Kozlov
я может глупости спрошу, но без контекста мобикс н...

контекст тут нужен только для доступа, точно так же как в редаксе ты используешь диспач, думаешь он реализован без контекста? ))

Dmitry Kozlov
я может глупости спрошу, но без контекста мобикс н...

без не деёт, т.е. повторю, ты можешь использовать провайдер от mobx-react, но там условно такой же контекст в кишках

Dmitry-Kozlov Автор вопроса
Trin Zotoff
контекст тут нужен только для доступа, точно так ж...

я ниодин стейт менеджер пока не пробовал, и не знаю о них ничего))))

Dmitry Kozlov
я ниодин стейт менеджер пока не пробовал, и не зна...

если глянул статью и примерно понял хотя бы код, то в общем представь, что ты в любом компоненте можешь обратиться к store.user.login и получить логин, или к store.user.signOut и деавторизировать пользователя. при этом тебе не нужно ничего никуда прокидывать. стор по сути это большое, глобальное, реактивное хранилище. я там храню пользователя, текущую версию софта, настройки темплейта (тёмная или светлая тема), туда же складываю все данные из апи, которые нужны. списки, директории итп. во-первых, mobx прекрасен в своей реактивности, он очень строг и при этом очень прост. с одной стороны, использовать легко, с другой, трудно допустить ошибку. во-вторых, ты не паришься больше с прокидыванием чего-либо, что должно быть глобальным. но это я уже говорил )

Dmitry-Kozlov Автор вопроса
Trin Zotoff
если глянул статью и примерно понял хотя бы код, т...

а например основные данные(рецепты в моем случае) тоже там можно хранить, получая из бд?

Dmitry Kozlov
а например основные данные(рецепты в моем случае) ...

да, в твоём случае я бы сделал стор categories, стор recipes (или как там они), в сторах описал бы экшены для работы с ними, в том числе транспорт и клал бы всё, что пришло из апи в store.categories.items, например. т.е. загружается приложение, я делаю store.categories.load(), где load — асинхронный экшен, который делает запрос к апи и кладёт всё в store.categories.items, а на странице уже flatlist, который в data получает store.categories.items

Dmitry-Kozlov Автор вопроса
Trin Zotoff
без не деёт, т.е. повторю, ты можешь использовать ...

На самом деле контекст – лишь один из вариантов. Поэтому фраза "не даёт без контекста доступ к стору" не совсем корректна. Дело в том, что mobx'овскому observer'у (или реакции или авторану, mobx же не завязан на react вообще, его можно где угодно применять, хоть в консольном приложении). Так вот, observer'у абсолютно пофиг откуда именно взялись observable на изменения которых он подписывается. Хоть из глобальной переменной, хоть из пропсов компонента. Поэтому, к примеру, мы вообще в приложениях не используем redux-подобные термины "стор", "стейт" и прочее... они только путают и заставляют строить архитектуру по какому-то шаблону, даже если для конкретного приложения этот шаблон неудобен. Поэтому observable-модели можно передавать в observer-компоненты любым возможным для приложения способом удобным для проекта/команды, это может быть: глобальная переменная, синглтон, DI система, react context, пропсы. Что угодно.

Gena Black
На самом деле контекст – лишь один из вариантов. П...

по сути что контекст, что обёртывание в обсервабл делает одно и то же, но в терминалогии я не силён, поэтому умываю руки )

Trin Zotoff
по сути что контекст, что обёртывание в обсервабл ...

Ну при передаче корня моделей (сторов) в компоненты реактовскими методами есть одно преимущество перед всякими синглтонами всё же – фаст рефреш лучше работает. Но это единственное преимущество.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта