Dmitry
и есть ли какой-нибудь крутой курс по appollo grapql ?
Andrey
Всем привет, а кто-нибудь шарить в grapql? я правильно понимаю, что grapql будет заменять сразу и redux и redux/saga т.к. и запросы и хранение стейта будет сразу хендлить?
редакс с обвесом - стейт менеджер аполло - клиент для графкуэль, с кешем пересечение между понятиями только в возможности асинхронных запросов и кешированию ответов на них хз, как там на самом деле, но в доках аполло форсит бизнес логику в компоненты упаковывать, что вообще не комильфо
Andrey
Апхапха 2.1 топчик)
ну там на самом деле пункт со звездочкой должен быть 😬 (сейчас забить, потом внедрить)
Andrey
В хуки уже ведь форсит
ну так логика в хуках это и есть логика в компонентах это то и плохо а без этого наверное и аполло не нужон 🧐
Sm•ok
Ку всем. Пытаюсь настроить i18next, i18next-xhr-backend Вроде все по доке, но ловлю error Cannot read property 'react' of undefined
wolfe
А что такое бизнес логика если коротко ? Логика работы веб интерфейса вцелом?
реакции на изменения значений, сбор данных, отправка, ожидание ответа сервера, работа с данными из ответа, преобразование и проч.
Andrey
А что такое бизнес логика если коротко ? Логика работы веб интерфейса вцелом?
ну, все, что связано с бизнес процессами клиентскими авторизация, методы работы с апи эндпоинтами, итп
wolfe
все, что к слою вида не имеет прямого отношения
ipos
клик на кнопочку и ответный консоль лог это бизнес логика?
Andrey
клик на кнопочку и ответный консоль лог это бизнес логика?
клик на кнопочку - да, бизнес логика что там дальше, не должно волновать компонент
ipos
но хендлер который срабатывает нужно держать в компоненте или ипортить откуда нибудь?
Danila
А что такое бизнес логика если коротко ? Логика работы веб интерфейса вцелом?
Это логика предметной области. Если в твоём бизнес-процессе есть потребление юзером информации через консоль - то да, можно считать бизнес-логикой.
Mikhail
Бизнес логика это добавление у корзину, расчёт скидки, запуск стрима, расчёт подписчиков стримера, etc
Andrey
но хендлер который срабатывает нужно держать в компоненте или ипортить откуда нибудь?
если хендлер просто маппит данные, то его можно считать частью вью слоя (onClick={() => handleClick(id)}) если делает что то еще, то уже БЛ (onClick={() => role === "admin" ? handleClick(id) : null}) handleClick - биндинг с любым стейт менеджером (экшн в редаксе, ивент/эффект в эффекторе, ...)
Danila
😂
Чего
Mikhail
Чего
Все норм, просто час назад я как раз возмущался консолью фейсбука)
ipos
если хендлер просто маппит данные, то его можно считать частью вью слоя (onClick={() => handleClick(id)}) если делает что то еще, то уже БЛ (onClick={() => role === "admin" ? handleClick(id) : null}) handleClick - биндинг с любым стейт менеджером (экшн в редаксе, ивент/эффект в эффекторе, ...)
так где же он в случае БЛ должен быть? Я так понял ты советуешь не писать БЛ прямо в компоненте, прямо в компоненте это ты имеешь ввиду в том, что render возвращает или вцелом в компоненте?
ipos
const Input = ({handleChange}) => <input onChange={(e) => handleChange(e.target.value.toLowerCase())} /> вот тут БЛ в компоненте, в лице toLowerString
const Input = ({handleChange}) => { const handle = (e) => handleChange(e.target.value.toLowerString()); retunr <input onChange={handle} /> } так тоже не ок?
Mikhail
toLowerString на сервер
Andrey
куда ты бы ее вынес?
in terms of effector const Input = () => <input onChange={inputChanged} /> const inputChanged = createEvent(); const inputValue = createStore("") .on(inputChanged, (state, event) => event.target.value) const inputValueLowered = inputValue.map((value) => value.toLowerCase()); //либо ужать до const inputChanged = createEvent(); const inputValueLowered = restore(inputChanged.map((value) => value.toLowerCase()), "");
Mikhail
Вообще все на сервер))
Aleksei
может кто подскажет, как можно отдебажить готовый билд? на dev сервере приложение работает без проблем, а после билда приложение виснет наглухо загружая процессор на 100%
Andrey
Вообще все на сервер))
тебе на аватарке только L в конце не хватает 🧐
Mikhail
Ты о чем?
Vladislav
GQL
Andrey
Ты о чем?
+ "L"
Mikhail
А, точняк
Cenator 🐈
ipos
тебе на аватарке только L в конце не хватает 🧐
т.е. в терминах редакса это были бы экшены и санки
Aleksei
ipos
ага
спасибо
Andrey
блин, не кроссплатформенная шутка вышла, получается (
Daniil
а можно детальнее?
Что в твоем понимании дебаг готового билда? Сорсы мапы включаются в вебпаке
Aleksei
Daniil
Приложении только в проде зависает? Возможно что - то не так полифилится, пакет может в дев деп у pckg json засунул и тд, а может просто утечка памяти. Много кейсов. Но с зависанием сорсмапы скорее всего не помогут. Разве что начать через девтулзы дебажить с точками остановы
Kevin
https://mobx-keystone.js.org/ всё как вы любите: мобикс, тайпскрипт, декораторы
Daniil
на дев сервере всё прочекал, проц выше 10% не грузится, а в проде уже незнаю куда еще копать. По вкладке performance вижу долгие вызов react-dom и всё.
Я бы начал в общем смотреть в сторону не засунул ли я жизненно необходимые пакеты для прода в дев онли.
Danila
на дев сервере всё прочекал, проц выше 10% не грузится, а в проде уже незнаю куда еще копать. По вкладке performance вижу долгие вызов react-dom и всё.
Я бы начал смотреть в стророну запуска на пустом хроме в инкогнито-режиме, чтобы исключить влияние девтулзов/адблоков/мутейшенобсерверов
Mikhail
а как можно посмотреть ЧТО именно загружает проц? у меня похожая проблема, приложение в проде начинает дико глючить, если открыть его в трех-четырех вкладках
Kevin
лол
Да, странное решение
Andrey
Да, странное решение
декораторы, программирование на литералах, и эт только на старте документации 😬
Cenator 🐈
лол
@model(uuid())
Andrey
@model(uuid())
а оно к семантике не имеет отношения? 🧐
Kevin
@model(uuid())
А потом такой next.js прикручиваешь
Cenator 🐈
Хотя не уверен что станет лучше но сср зло
Cenator 🐈
Лучше делать без реакта чем сср на реакте
Kevin
@model((() => uuid())())
Так погоди, тебе ж надо, чтобы на сервере и клиенте были одинаковые айдишники Разве что макросы заюзать)
Daniil
Лучше делать без реакта чем сср на реакте
Это впервый раз больно только 🌚
Anonymous
А кто-нибудь использовал SC с intersection observer API? Требуется указать наблюдателя, а у SC все классы уникальны. Переформулирую вопрос: как-нибудь можно изменить/добавить_префикс для класса SC?
Anonymous
всё. нашел решение
Anonymous
Ребята, кто знает библиотеку или какой-то готовый код для двойного рендж слайдера
Anonymous
В гугле жеж достаточно
В гугле никакая либа с преставкой range-slider не работает
Daniil
в смысле не работает?)