заиспользовать?
Да, через него удобно кидать колбэки
А чем это лучше тех же ReactiveVariables? Чтобы лишних обёрток внутри компонентов не было?
Контекст это же не инструмент для стейт менеджмента:) поменять темизацию или язык например это да
Вы тоже реактивные переменные используете?
Почему? Он же хранит именно стейт, и позволяет пробрасывать этот стейт между компонентами
она со мной работает)
Это отдельная тема которая уже уйдет глубоко в оффтоп от тематики чата:) Если коротко то вот просто отличнейший разбор почему контекст это не стейт менеджмент https://blog.isquaredsoftware.com/2021/01/context-redux-differences/#final-thoughts
А вы сталкивались с какими то подводными при использовании makeVar?
самый большой трабл контекста что все компоненты которые на него подписаны перерендериваются даже если та часть данных которая нужна им не изменилась
из-за своей простоты (я их воспринимаю тупо как глобальные переменные) ими начинаешь пользоваться по любой хуйне. Ещё у них синтаксически никак не выражен редьюсер. Поэтому если проект большой становится, советую отдельно делать какой-нибудь файлик типа componentNameVar.ts под каждый компонент. Там хранить makeVar и редьюсер под него на экспорт, если там какая-то сложная логика. Иначе оглянуться не успеете, как у вас всё превратиться с ними в кашу. Где вы изменяете стейт, где создаёте, ничерта непонятно станет.
Я не особо опытен в этом плане, мне кажется что чтобы сайт начал лагать это надо ну прям реааально огромный проект, а большинство среднего размера, или я ошибаюсь?
Спасибо за совет, попробую их но что то интуиция подсказывает что придется тащить старый добрый redux:)
Тут скорее дело в подходе, лучше сразу делать хорошо чем делать как нибудь с оговоркой что проект небольшой или так быстрее и тд:)
зависит от логики которая в каждом компоненте. Там может быть всего 5 компонентов, но в каждом какие-нибудь сложные подсчёты и они будут тригерится на каждый ререндер
и упаси боже редакс) блин, есть же столько стейт менеджеров классных)
Согласен наверное
Но в 90% случаев сайт это обычный CRUD для бэкенда
https://github.com/apollographql/ac3-state-management-examples/tree/master/apollo-local-state/src/operations/mutations/deleteTodo вот тут есть пример как организуют код при использовании реактивных переменных, вы что то похожее делаете?
ну я не знаю как у вас, у нас нет) где-то мы d3.js, например, используем и монструозные графики рендерим, где-то чаты делаем
в примере они вроде связаны с кэшем аполовским через @client поля. Мы их не связываем так
да, вижу это они походу сразу на две концепции в одном репо сделали пример:)
Обсуждают сегодня