Evgeniy 🍀
в реатоме и эффекторе сторы создаются атомарно и зависимости описываются вручную + можно хранить данные отдельно от параметров
ничто тебе не мешает в редаксе также писать. А то что под капотом это один стор - какая разница?
Китикет
покажи пример фабрики для ридакса, я то то не понимаю
Держи) function createCrud() { return { reducer, actions, selectors } }
Ilya
покажи пример фабрики для ридакса, я то то не понимаю
любая функция которая возвращает редьюсер. но не является им
artalar
ничто тебе не мешает в редаксе также писать. А то что под капотом это один стор - какая разница?
мешает, в редаксе при множественных сторах будут глитчи, а из-за механизма селекторов там не правильная оработка ошибок...
Китикет
а в чем профит?
В том что не надо каждый раз руками писать огромные редьюсеры и кучи экшнов, но это естественно когда оно поддается такому созданию автоматическому
Ivan
Обновляешь значение в useState
по кнопке не по onChange ну зайди ты в песочницу, посмотри
artalar
по кнопке не по onChange ну зайди ты в песочницу, посмотри
Там какой-то intercept - что это? Можешь объяснить? Я задумку не оч понял
Bogdan
Типа того
не понимаю, а если в редюсере логика уникальная
artalar
Одна из больших проблем редакса - в редусера нельзя описывать некоторую логику, потому что невозможно построить зависимость от другого редусера
Юрий
так все таки есть вариант в switch case детектить строку не целиком а часть ее? "reset-password"
wolfe
не понимаю, а если в редюсере логика уникальная
пишешь новый, либо позволяешь расширять. но второе обычно плохо заканчивается
Bogdan
пишешь новый, либо позволяешь расширять. но второе обычно плохо заканчивается
так в основном все в редюсере уникально, по какому принципу он генерится? есть ссылка на гит? проще глянуть
Ivan
Там какой-то intercept - что это? Можешь объяснить? Я задумку не оч понял
вот суть в том, что какой-нибудь модуль, который находится за пятнадцать директорий от моего стора, может заимпортировать стор и выполнить intercept на observable для того, чтобы набоюдать за изменениями в структуре observable-массива, например если из коллбэка в intercept ничего не вернуть, то наблюдаемый observable не измеится
Anonymous
Приветствую. Мой Реакт компонент принимает со стора список данных (массив). Этот массив отображаю в таблице, её нужно сортировать по столбцам. Где сортировать? Как понял, не в компоненте, пришлось бы копировать приходящий массив в state компонента, чтобы сортировка обновляла данные в таблице. Возможно, по клику по хедеру столбца вызывать экшен, который отправить на store параметр, по которому сортирую, и направление сортировки. Затем сортировать в редюсере, откуда приходит исходный массив, или в компоненте. Верно?
Китикет
так в основном все в редюсере уникально, по какому принципу он генерится? есть ссылка на гит? проще глянуть
Круды например всегда одинаковые - массив айтемов, экшн создания, редактирования, удаления
Anonymous
Кто с SC работает и использует rem/em - вы сами конвертируете юниты в px или есть какой-нибудь хелпер для этого?
Ilya
так в основном все в редюсере уникально, по какому принципу он генерится? есть ссылка на гит? проще глянуть
ну есть явно схожие задачи. К примеру список с пагинацией. Если у тебя много списков то проще анписать одну фабрику рельюсеров
Bogdan
Круды например всегда одинаковые - массив айтемов, экшн создания, редактирования, удаления
а, тоесть усли есть работа с юзером, с записью, можно это обьединить в фабрику, не писать при этом два раза одно?
Diana
Ребята привет. А можно тут вакансию разместить?
Ivan
хмм, спасибо
и там такой магии достаточно много оно, конечно, удобно и иногда полезно. я сам даже пару интерцепторов написал, обложив десятками строк комментариев но когда такие вещи оказываются в руках джунов, а архитектор ушёл в отпуск — начинается кромешный хтонический адъ
wolfe
короче не понимаю, редюсеры уникальны, как его нагенерить для всего
или можно сделать генератор форм. у меня есть такой с клиентской валидацией и типами ну и как профит –– он не будет частью синглтона и там можно оптимизировать рендер (учитывая, что поля формы –– это объект) при помощи некоторых хитрых манипуляций
Diana
Спасибо
Stanislav
Реплейс не поможет. Ты назад не выйдешь
Там про это и пишут, что пуш в четвертой версии неправильно работает
Bogdan
кому не трудно, есть рабочий пример с фабриками?
Bogdan
ридакс, что бы вьехать быстрее
Anonymous
кому не трудно, есть рабочий пример с фабриками?
сформулируй вопрос получше, фабриками чего?
Bogdan
сформулируй вопрос получше, фабриками чего?
да я же хз, я слышал про паттерн, но не юзал и не видел, вот фабрики делают для ридакса, еффектора, глянуть что там конкретно
Bogdan
простыми словами - фабрика, которая нам создает обьект? не могу даже придумать как применить
Ilya
да я же хз, я слышал про паттерн, но не юзал и не видел, вот фабрики делают для ридакса, еффектора, глянуть что там конкретно
формально всякие redux-actions / redux-act/ redux-symbiote такие же фабрики редьесеров. Правда ничего не мешает написать и фабрику поверх них)
wolfe
простыми словами - фабрика, которая нам создает обьект? не могу даже придумать как применить
создает стор, который имеет однотипный набор экшенов и один редьюсер для обработки данных разных типов
Ilya
простыми словами - фабрика, которая нам создает обьект? не могу даже придумать как применить
создает объект, функцию все что угодно. Теже ХОКи можно рассматривать как фабрики компонентов
wolfe
формально редьюсер один. фактически –– разные его копии
Ivan
ну да, не сразу заметил. Проверил на проекте, есть места где используем и без проблем. Тебе не нравится функционал который предоставляет mobx?
Мне не нравится, что он ПОЗВОЛЯЕТ делать такие неявные вещи. Чем больше свободы у программиста, тем проще написать говнокод. А за всеми не уследишь. А чтобы следить, нужно вчитываться и напрягать думалку. Из-за подобной вседозволенности в js «настоящие» программисты стебутся над «js-макаками».
Bogdan
создает стор, который имеет однотипный набор экшенов и один редьюсер для обработки данных разных типов
вот есть работа с постами, работа с коментами, допустим у всех есть круд набор операций, но у первого и второго будет уникальный набор, разве бывает прям сколько то идентичных редюсеров?
Bogdan
при пагинации каждый раз, как правило
да пагинация это ну прям надуманный пример, я хз, пагинацию в хук достаточно
wolfe
да пагинация это ну прям надуманный пример, я хз, пагинацию в хук достаточно
хук –– это про слой View. нас слой модели сейчас интересует
Ilya
да пагинация это ну прям надуманный пример, я хз, пагинацию в хук достаточно
в чем его надуманость? Если многие кладут списки в стор?
Саша
Народ HMR может перезатирать window.opener?
Ivan
Ну да ((
А если прибавить к этому необходимость изобретать способ общения между сторами, то «ну нахер! Нет, ты это видел?!»
Ivan
Суровая правда, Иван. Вопрос это чисто философский. Поэтому существуют такие люди как B-тестировщики и ПМ-ы. ещё забыл про код-ревью
Всё, о чем я говорил — забота только программистов, которые пишут и дебажат код. Ни ПМ, ни тестер тут не поможет. А ревью тоже нужно уметь проводить. И «главный по мобыксу» должен быть охуенно умным, чтобы разработка не превратилась в ад.
Антон
А кто такие эти В-тестировщики?
бета тестировщики. Простите, "непозволительно"😀 сократил название
Vladimir
Видимо бета
Valentin
как избавится в реакт роутере от пуша в историю? типо кликаешь на одну ссылку много раз, при клике кнопки назад, не кидает назад, пока не кликнешь столько же, сколько на ссылку, дисаблед только ссылку активную делать?
https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/api/NavLink.md пробовал так? Но одно уточнение <NavLink to="/orders" activeStyle={{ pointerEvents: 'none' }}>Orders</NavLink>
Ruslan
Есть способ передать данные с локалсторежд между сайтами размещенными не на одном домене?
Alex
через сервер если он общий
Ilya
пагинация и список разные вещи
ну а в спискам часто нужна пагинация.
Vadim
Есть способ передать данные с локалсторежд между сайтами размещенными не на одном домене?
локалсторежд на то и локалсторежд чтобы локально хранить данные)
Bogdan
ну а в спискам часто нужна пагинация.
ну обычно есть компонент таблица, который из пагинации берет странице, ну ладно, я давно не делал такое с ридаксом, не понимаю фабрики, буду пробовать
Valentin
дисабед уже сделал просто)
И выше была ссылка. Мне понравилась идея впихивать Хистори апи самостоятельно и апгрейдить логику через мидлвару. Но столько лишних движений. Вообще бред что так работает. Холя это как баг, так и фича
Max
Всем привет. Скажите, на текущий момент, в чем преимущество функционального компонента перед классовым? В доке что-то не увидел по этому поводу ничего. Я услышал довод, что " у классового компонента тянется лишний экземпляр Component, у него будут запускаться методы лайфсайкла. Еще и со стейтом инициализация" Это так или где можно почитать про это? Может кто-нибудь просветить?)
Артем
хуки, код короче
вот только со сейтами и логикой событий как-то гемороисто эти хуки... с классовым компонентом в этих моментах как-то по понятнее что ли
Max
код короче, не значит лучше. Хуки не показатель, что лучше, по идее)
Valentin
хуки, код короче
И все? Почитай про изменение жизненного цикла компонентов в обновлении реакта
Ryhor
Как в React в antd компоненте DatePicker, который использует mement.js, отправлять дату без времени. Только год, число и месяцю Кто-нибудь знает?