GG
ок. послушаем мнение еще других людей. как я понял вы не пользуетесь релиз листом
Sheldhur
вот релиз ноут
Sheldhur
найди совпадения
Sheldhur
вопрос к проотцам. Вы всё подряд кидаете в редакс? На каждый запрос создаете экшены, типы, селекторы, хуемое? Даже если они 1-2 раза используются во всем проекте? Как там у вас в топ кейсах принято поступать?
artalar
вопрос к проотцам. Вы всё подряд кидаете в редакс? На каждый запрос создаете экшены, типы, селекторы, хуемое? Даже если они 1-2 раза используются во всем проекте? Как там у вас в топ кейсах принято поступать?
Все по разному делают. Лично я за то что бы ВСЕ хранить в редаксе - это максимально предсказуемо и не возникает проблем когда нужно связать глобальное и локальное состояние, что часто бывает в больших проектах (по моему опыту). А что бы оно все не тормозило и бойлерплейта много не было, вот: https://github.com/artalar/reatom
Sheldhur
ну тебя нет, конечно
Sheldhur
пользователя может
Mikhail
пользователя может
объект стейта не достигнет таких размеров
Dmitrii
Ребят, кто-нибудь сталкивался с тормозами при использовании всеми любимого react-dnd? Использую хуки и mobx-state-tree для менеджмента состояния, в этом плане всё кошерно, все коллбэки мемоизированы. Однако, при перетаскивании элементов списка наблюдаются жуткие тормоза. В какую сторону оптимизировать?
Sheldhur
объект стейта не достигнет таких размеров
да? а теперь представь что один разраб так думает, второй разраб так думает, третий, ... 100500й. В итоге в браузере 50 вкладок которые жрут память
Dmitrii
ты в стейт обновляешь при каждом обновлении позиции во время драга?
стэйт локальный не использую, в mobx-сторе да, обновляю при каждом перетаскивании, естественно, ведь порядок элементов у меня в сторе хранится.
artalar
пользователя может
А какая разница, будет это в локальном или глобальном стейте?? А, я понял о чем речь. Ну в reatom атомы ленивые - вычисляются только при подключении, а когда все подписчики отписываются, из глобального стейта удаляются стейты ненужных атомов.
artalar
объект стейта не достигнет таких размеров
Не факт 🙂 Особенно с ленивым подключением редусеров
Dmitrii
ну ты же ивенты слушаешь ? Drag start/Drag End ?
конечно, на onDrag вызывается useCallback
Sm•ok
конечно, на onDrag вызывается useCallback
Чекни как часто вызывается. Если один раз, проблема врядли в react-dnd )
Sheldhur
Не факт 🙂 Особенно с ленивым подключением редусеров
ленивое подключение только усугубит дело?
artalar
ленивое подключение только усугубит дело?
Проблема в том, что многие разрабы пользуясь чем бы то ни было “ленивым” забывают чистить за собой, а либы автоматом это не все умеют. Редакс точно не умеет.
Sm•ok
https://artalar.github.io/reatom/#/?id=why-not-effector
Ого ) Скоро каждый будет писать свой стейт менеджер и писать "Почему не [предыдущие стейт менеджеры" )
Sm•ok
дофига он вызывается
А какой ивент слушаешь ? onDrag это же прям когда тащишь
artalar
Ого ) Скоро каждый будет писать свой стейт менеджер и писать "Почему не [предыдущие стейт менеджеры" )
У меня скоро будет двухчасовой доклад про то как сложно написать стейт-менеджер. Реатом писался полтора года.
Sheldhur
релиз проебал
Sm•ok
Это как ? Если стор никто не слушает, он сразу удаляется из редюсера ?
Sheldhur
не сразу, да. GC через какое-то время подчистит
artalar
Это как ? Если стор никто не слушает, он сразу удаляется из редюсера ?
Вопрос про редакс или реатом? В общем: динамические редусеры, что бы нормально работать и не было коллизий, при каждом новом инстансе своем создают стейт по уникальному ключу. Но при отписки или реплейсе этого редусера часто этот стейт забывают удалить.
Sheldhur
так а нах он нужен, если при анмаунте тоже саоме происходит
artalar
так а нах он нужен, если при анмаунте тоже саоме происходит
Потому что контролировать много маленьких связей намного сложнее, чем одну жирную.
artalar
дебажить и т.п.
artalar
фикс ^
Sheldhur
ты читал что я спрашивал?
Sheldhur
ты каждый пук пишешь в стор? для каждого пука создаешь экшен с диспатчем?
artalar
ты каждый пук пишешь в стор? для каждого пука создаешь экшен с диспатчем?
Да. И с реатомом это занимает чтолько же кода, сколько и с React.useState
Sheldhur
под пуком я имею ввиду запросы\данные который один единственный раз используются в одном единственном месте
artalar
Атомы и экшены (их декларации), практически, обычные функции (со статическими приватными полями), они нормально композируются и в итоге можно делать что-то такое: использование совершенно аналогично локальному стейту, но все это пишется в глобал стейт, т.е. это все можно: снапшотить, логировать и т.п. https://codesandbox.io/s/reatom-simple-example-j8idi
Sheldhur
а чем это отличается от useReduser?
artalar
а чем это отличается от useReduser?
Тем что пишется в глобальный стейт - т.е. вся мощь редаксовских девтулзов. Для меня самое важное то что все изменения я могу видеть поэтапно. Когда стейтов несколько, легко запутаться, при нескольких изменениях подрят, какой был первый и что на что повлияло.
Sheldhur
у тебя видимо мелковатые проекты
artalar
Наоборот 🙂
Илья
😄
Sheldhur
я когда девтулзы на реддите открываю, то они минуту рендерят стейт
artalar
В больших проектах все время проблемы возникают на стыке: вот тут нужно как-то сделать зависимость локального стейта от глобального и наоборот.
Sheldhur
🤭
artalar
А когда все смотришь через редаксовские девтулзы: поэтапно и с дифами - дебажить в разы проще и нагляднее.
Sheldhur
ну я к тому, что девтулзами на серьезных проектах пользоваться невозможно
artalar
ну я к тому, что девтулзами на серьезных проектах пользоваться невозможно
Достаточно перетерпеть / забатчить init фазу, все остальное вполне комфортно
Дмитрий
Добрый вечер Есть кнопка которая переходит по ссылке, но переходит она через браузер. Как можно сделать что-бы кнопка работала через WebView ? import { Linking } from 'react-native' <Button title="Press me" onPress={() => Linking.openURL(google.com)} />
artalar
А когда все смотришь через редаксовские девтулзы: поэтапно и с дифами - дебажить в разы проще и нагляднее.
Я помню как-то дебажил багульку которая закралась где-то между 15 диспатчами подряд. Мне потребовался, ну час, что бы разобраться. Если бы это была цепочка локальных стейтов и их апдейтов я бы минимум пол дня просидел.
Sheldhur
цепочка из 15 локальных стейтов?
Sheldhur
ты вообще нормальный о таком думать?
artalar
цепочка из 15 локальных стейтов?
15 апдейтов подряд, ну пусть, 4ех разных стейтов.
Sheldhur
ну начинается
artalar
Всякие change, validate, update, fetch + update x3, compute
Sheldhur
ты заблудился в 4х стейтах?
artalar
Ага
Michail
Привет, скажите Context API считается deprecated или нет?
Michail
Старый — да.
Старый это до версии какой примерно? Тот что 'вместо" redux я правильно понимаю?
Roman
Есть ли способ одновременно сравнить пропсы со следующими и апдейтнуть стейт перед рендером?
artalar
В доке есть пример с сравнением пропсов
Roman
Ребят, возник вопрос, насколько правильно или не правильно отлавливать изменение props и записывать state в shouldComponentUpdate()? Например если мне надо помнять state в том случае если измениться тот или иной props
Roman
getDerivedStateFromProps
Но ведь он будет всегда перезаписывать стейт при изменении пропрос, но не факт, что тот пропс, который мне нужен, изсенился
Roman
Ты об этом?
artalar
Там есть приме с хранением последних пропсов в стейте
Dima
Всем привет. У меня вопрос по github pages. Залил свой проект git-pages, перехочу на новую страницу через роутинг - все работает, но когда обновляю страницу пишеш "404 File not found"