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

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

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

12 ответов

7 просмотров

не, в этом и прикол, это чистый реакт, 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
по сути что контекст, что обёртывание в обсервабл ...

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

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта