Артём
бесконечный скролл?
наверно. есть список, и при прокрутке до конца, надо чтоб ещё само подгружалось
Sergey
хотя это очень кривой, с точки зрения ux, инструмент
Артём
хотя это очень кривой, с точки зрения ux, инструмент
лучше просто кнопку подгрузки оставить?
Sergey
но это вообще как дизайнер решит, конечно. а дизайнер должен понимать проблемы infinite navigation
Daniil
а какая главная проблема?
Sergey
а какая главная проблема?
- невозможно вернуться на результаты после скролла - нельзя дать ссылку на результаты поиска
Daniil
а, спс, точно
Daniil
@itsjohncena , спасибо) но как же харош тайпскрипт, теперь он говорит, что у созданного нет children
Kurzdor
И styled(AlreadyStyledComponent)
Mikhail
Так на каждый экшен вызывается только один редьюсер
ха, в редаксе вызываются все, если редьюсер ничего не знает про этот экшен, то он должен вернуть стейт без каких либо изменений
Артём
- невозможно вернуться на результаты после скролла - нельзя дать ссылку на результаты поиска
-результаты сохраняются, достаточно пролистать вверх (юзер обычно всеравно не запоминает, на какой именно странице что было) -ищут обычно конкретный результат, а не страницу (просто моё мнение)
Mikhail
Эффектор делает это
он довольно жирный, я прикидываю, что весь код можно уложить в 2кб
Daniil
а лол
Mikhail
с ридаксом у тебя не выйдет
я знаю, я просто прочитал исходники storeon, вот и появились такие мысли
Sergey
он довольно жирный, я прикидываю, что весь код можно уложить в 2кб
ты потратишь эти 2кб только на описание экшенов и редюссеров а ещё логика, санки и селекторы
Daniil
хз, экономия на спичках
Mikhail
gzip надо смотреть
не надо гзип смотреть, гзип кешируется, скрипт парсится каждый раз при открытии страницы
Vlad
Sergey
я знаю, я просто прочитал исходники storeon, вот и появились такие мысли
ну со стореоном ты теряешь дофига всего я хз как на нем можно писать что-то серьезное
Vadim
Да
Эхх
Vlad
Эхх
Я сверху отписал ты можешь прочитать
Mikhail
Ну по сути это один редьюсер если ты пользуешься combineReducers
все равно каждый из этих комбинированных будет вызван
Sergey
Да
на каждый экшен вызываются все редюссеры
Vadim
Слава богу хоть кто-то
Тебе он тоже самое ответил
Sergey
типа чего теряю?
связки сторов вычисление зависимостей сторов предсказуемость вычислений возможность сбандлить сам стор в ноль - @zerobias показывал как можно effector через prepack ужать в ноль, оставив только логику
Mike
Может знает кто-то?! Делаю пост запрос и показывает CORB, как это пофиксить?
Vlad
Тебе он тоже самое ответил
CombineReducers делает один большой редьюсер ты это понимаешь?
Vadim
Понятно что есть один большой
Vlad
И что?
Я понял, ничего
Sergey
ничего не понял, но звучит интересно, пойду читать про prepack
в общем я очень рекомендую разобраться в эффекторе и попробовать его в реальной жизни. возможно, для очень маленьких проектов он и не нужен вовсе и можно обойтись даже без реакта.
Sergey
tree-shakeable side-effect free
Sergey
и эффектор вам может существенно упростить жизнь, как минимум выкинув такую сущность как селекторы
Sergey
вот пояснение
Sergey
децентрализованность, декларативность, эффективность. требовался инструмент, позволяющий управлять данными в сложных приложениях без опасности раздуть монолитный центральный стор, с явным control flow, нормальной типизацией и емким апи — сторы для приложения должны быть лёгкими, насколько это возможно — не должна пугать мысль о том, что нужно добавить ещё один стор для конкретных нужд — сторы должны свободно совмещаться — идея в том, что данные, которые потребуются приложению, можно распределить статически, заранее показав как данные будут преобразоваться во время работы приложения — принцип работы должен by design исключать необходимость в reselect, оповещая об изменениях только тех, кому они необходимы. это позволяет не задумываться о том, что у тебя будет триггериться всё приложение если ты захочешь вынести стейт модалки из реакта. по совместительству это означает что приложения избавлены от проблем с перфомансом, возникшим у react-redux при переходе на контекст — возможность, место, и способ вынести любую требуемую бизнес-логику из view, максимально упрощая компоненты — независимость от спорных концепций — никаких декораторов, никаких зависимостей от реакта/rxjs либо необходимости юзать классы или прокси — ничего из этого не требуется для управления состоянием приложения и поэтому апи библиотеки использует только функции и простые js объекты — предсказуемость апи. небольшое число базовых принципов переиспользуются в различных кейсах, снижая нагрузку на юзера и повышая узнаваемость. зная как работает .watch в эвентах, можно догадаться, что делает функция .watch у стора — приложение строится из комбинации базовых элементов и возможности строить новые. нет никакого смысла стремиться выдать всё за стрим, за редьюсер или за обсервабл, в приложении требуются они все, и библиотека предлагает решение чтобы управлять структурой данных, а не скрывать её
Sergey
Тяжело было с редакса на эффектор переписать проект с кодовой базой в десятки тысячи строк? Или не было такого опыта?
у меня не сильно много кода было на проекте, но я переписывал https://github.com/howtocards/frontend оказалось, что на эффектор переписывать легко и чаще всего приятно, особенно если понимаешь как писать декларативно
Sergey
https://github.com/howtocards/frontend/tree/cc3c8d091f624bdb5e2263decf301144d3b6532c
вот тут коммит, когда всё было на ридаксе
Sergey
а вот счастливый коммит: https://github.com/howtocards/frontend/commit/4811bfded5098f4e2fb205adba3b180d2c0af81e
Sergey
Sergey
Sergey
Sergey
effector чуть больше чем БИНДИНГИ ридакса к реакту)
Sergey
так что говорить о том, что он жирный нельзя)
Sergey
а ещё ридакс
Sergey
и куча всяких плагинов вроде саги или санка
Mikhail
редакс тоже не маленький, да, меня просто storeon своим размером очень удивил
Mikhail
мне показалось, он делает практически то же что и редакс
Mikhail
чего в нем не хватает?
Sergey
нет миддлвар)
Mikhail
я пришел во фронтенд из жава-мира, и что-то мне как-то не очень нужна типизация
Eugene
интересно долго еще люди будут париться за большие размер либ🤔
Mikhail
интересно долго еще люди будут париться за большие размер либ🤔
да, пока приложение открывается по паре секунд
Sergey
большие либы это проблема, но убивать возможности ради размера это глупо
Sergey
я пришел во фронтенд из жава-мира, и что-то мне как-то не очень нужна типизация
ну вот сделал ты useStoreon('foo') - и ты не узнаешь опечатался ты или нет пока не запустишь - плюс иде не подскажет тебе что лежит в этом сторе
Sergey
а ещё связанные данные обновлять в стореоне непонятно как. короче нужно снова изобретать подходы