Bogdan
npm
я так и не понял фишку? скорость работы , удобство или что?
G.
но можешь и на клиенте сделать
Просто если я беру часть айтемов для страницы, то и фильтрация и сортировка тоже на беке будет же?
Yury
Просто если я беру часть айтемов для страницы, то и фильтрация и сортировка тоже на беке будет же?
если к тебе приходит весь список данных, то можешь и на фронте это делать. Вопрос в их количестве и соответственно в скорости уже далее
Cenator 🐈
По скорости особо нет вопроса, если рендеринг постраничный то и с 10к объектов справится фронт
Eugene
Просто если я беру часть айтемов для страницы, то и фильтрация и сортировка тоже на беке будет же?
по-хорошему фронт надо разгружать, и пагинацию, сортировку, фильтрацию делат на бэке
Cenator 🐈
Попробуй взять react-table и туда загнать все
Cenator 🐈
Там из коробки все операции на фронте - пагинации, сортировки
G.
все это можно делать как на фронте, так и на бэке
Просто если я подгружу часть данных для страницы, а на фронте у меня фильтры например по цене, названию, то и фильтрацию уже только через бек делать
Eugene
зачем уже запросы лишние отправлять
G.
По скорости особо нет вопроса, если рендеринг постраничный то и с 10к объектов справится фронт
Сейчас в одном тестовом задании я подгрузил все данные сразу в Редакс стор и делал фильтрацию на клиенте. Но сколько данных так можно подгружать
G.
ну если тебе нужна фильтрация по подгруженным данным, то на фронте ее делаешь
Ну в том то и дело что фильтрация обычно среди всех нужна
Cenator 🐈
Ну в том то и дело что фильтрация обычно среди всех нужна
Используй requestIdleCallback рекурсивно, чтобы не блокировать ивент луп надолго
G.
Еще такой вопрос, если подгружены данные для страницы уже отфильтрованные, их обычно сохраняют, типа кешируют в Редакс стор или при переходах по страницам заново грузят
G.
Лучше, наверное заново. Количество страниц и сами данные могут быт обновлены.
Я так прикидывал, если пытаться сохранять, нужно и какую-то отметку времени делать сколько эти данные считать годными и для каких фильтров они подгружены
Den
Если есть фильтрация в интерфейсе - лучше на бэке фильтровать каждый раз.
Den
Зачем собирать "озеро данных" на фронте?
rovnyart
Ребят, кто-нибудь работает с notistack? (https://github.com/iamhosseindhv/notistack) Не могу придумать, как закрывать снекбары по клику на них, просто по клику в любом месте, без добавления кнопок через параметр action, никто не сталкивался?
G.
очень много данных подгружаешь за раз?
Не много. Имелась ввиду подгрузка данных для одной страницы при постраничной пагинации
G.
Зачем собирать "озеро данных" на фронте?
Ну типа возвращаешься на предыдущие страницы, а там данные уже есть без подгрузки)
G.
Аа, без фильтрации? типа как для бесконечного скролла?
Нет, постраничная, если с бекенда приходят данные для страницы уже отфильтрованные
Den
Нет, постраничная, если с бекенда приходят данные для страницы уже отфильтрованные
Постраничная - значит с выбором страницы с фронта и отображением количества страниц?
Den
Ну да
А если количество страниц увеличится пока ты лазишь по страницам и последняя на 1-й странице стала первой на 2-й - ты будешь обманывать своего клиента?
G.
А если количество страниц увеличится пока ты лазишь по страницам и последняя на 1-й странице стала первой на 2-й - ты будешь обманывать своего клиента?
Последняя кто?) Есть список товаров например. Одновременно отображается пусть 9 штук. Нажимаешь кнопку next показываются другие 9 штук. Страница по сути та же в SPA, может это и не постраничная пагинация называется)
Den
Последняя кто?) Есть список товаров например. Одновременно отображается пусть 9 штук. Нажимаешь кнопку next показываются другие 9 штук. Страница по сути та же в SPA, может это и не постраничная пагинация называется)
Два кейса: 1) Последний товар на первой странице стал первым на второй, т.к. был создан еще один за это время 2) Ты перепрыгнул сразу на пятую страницу - будешь все предыдущие грузить?
Den
Я считаю, надо при переходе на страницу запрашивать текущее состояние. Обычно присылают стандартный объект с описанием общего количества страниц вместе с содержимым запрошенной.
Artem
Добрый день, подскажите, пожалуйста, как в jsx сделать подставляемый тег. Суть в том, что к проекту подключены material icon и мне нужно при мапе массива объектов забирать icon и подставлять в тег. <nav className="toolbar__navbar"> {menuLinks.map(({link, rel, icon}) => <Link key= {rel} to={link} rel={rel}> <icon /> </Link> )} </nav> P.S. пишет Property 'icon' does not exist on type 'JSX.IntrinsicElements'. TS2339
Yura
всем привет, вопрос от начинающего в реакте, для тех кто уже на работе, какой процент пишете хуками, а какой классами? Спасибо
IIII
Я кст как не понимал зачем писать классами так и не понимаю) мне слишком нравится идея функциональщины. В целом классы мне пригодились по моему ток один раз, когда нужен был реф.
Yura
просто все говорят ,класы база и тд, но вот хуки как-то попроще, и поэтому спрашиваю ибо интересно)
Сергей
тоже вопрос начинающего - хочу сделать простую систему типа 1С - справочники и документы. Должен ли я на реакте описывать абстрактные классы документов и справочников, а потом конкретные виды добавлять наследованием? Или я должен только написать компоненты для визуального вывода данных, а всю модель данных делать на бэкэнде?
IIII
Мне тоже хуки больше нравятся)
IIII
Тебе вообще необязательно юзать классы
IIII
Кст бекенд на чем?
IIII
Rest?
IIII
Прост если gql то там можно с помощью Flow или TS сгенерить все тайпинги
Yura
Мне тоже хуки больше нравятся)
просто длz примера, взять в класах лайaсайкл, то чтоб отменить ререндеринг какого то компонента, если он не поменялася, нужно вызывать метод и там через if сравниваить. Если хуки просто в React.memo(Component).
IIII
Единственное что мне не так нравится... Если раньше можно было быть уверенным что функция === stateless, то теперь все не так просто)
Китикет
useCallback
Китикет
Почему?
Сергей
А саму модель где описывать? Если бэк на ноде.жс, то просто надо сделать API для получения любых данных? Типа GraphQL запросы кидать и помещать ответ в визуальные реакт-компоненты?
Китикет
Естественно там надо иметь определенную бизнес логику
Китикет
Не понятно о какой модели ты говоришь) Если о модели как в mongodb, то это естественно на бекенде должно быть, а как иначе
🦜
Фронтенд это не просто про визуальный вывод данных)
Фронтенд это когда в жопу... ну вы понимаете
Китикет
Модель это вообще слишком широкое понятие
Сергей
Не понятно о какой модели ты говоришь) Если о модели как в mongodb, то это естественно на бекенде должно быть, а как иначе
ну вот стандартное приложение - база данных, ORM какойто и визуальная красота. Везде пишут что реакт это только V из "MVP", т.е. модель данных в нем не предполагается описывать
Китикет
Модель это вообще слишком широкое понятие
Можно под него хоть кусок стейт менеджера отнести
Китикет
Ну, реакт это действительно View)
Китикет
Реакт вообще достаточно свободная штука в плане архитектуры
Китикет
Но это не исключает того, что логика к реакту в большинстве случаев не привязана, и она имеется, а ее можно назвать этой самой моделью
Китикет
Короче я не знаю, просто берешь и пишешь, а там все само придет, на эту тему как-то тупо рассуждать вообще
Китикет
Слишком абстрактные вещи
Китикет
Сегодня кстати вроде было на эту тему
Китикет
Про MVVP говорили
Сергей
ну я в принципе нашел статейку про написание фул-стек приложения на реакте как клиенте и экспрессе как API
Сергей
на экспрессе роуты и логика на них, на реакте их дерганье и помещение ответа в стейт
Ula
Как в child компонент передать событие, которое в parent компоненте запускается сокетом?
Сергей
Короче я не знаю, просто берешь и пишешь, а там все само придет, на эту тему как-то тупо рассуждать вообще
Норм подход для тудулиста ) Для приложений побольше надо немного не так )
Сергей
Короче такой фул-стек: NodeJS+Express+GraphQL+TypeORM -> React
Ula
нашел уже, через рефы
Ula
нужно было запустить метод чайлда из перента. хотя вот выяснилось, что на самом деле соседа из соседа, читаю дальше 🙂
Dmytro
Привет всем. Как правильно верстать под Реакт, вроде БЕМ не гуд или как?
Sergei
Привет всем. Как правильно верстать под Реакт, вроде БЕМ не гуд или как?
Под реакт нет правильно или неправильной верстки, правила вёрстки те же самые, что и для обычного сайта
Сергей
нашел прикольную штуку - https://strapi.io , вроде то что надо для бэка
Китикет
Норм подход для тудулиста ) Для приложений побольше надо немного не так )
Приложения побольше надо писать когда уже есть опыт туду листа
Китикет
Чтобы понимать как все должно быть выглядеть в плане архитектуры
Китикет
Я не могу все свое видение архитектуры написать в каком-то одном сообщении в телеграме
xxxxxx
Ребята даны два компонента в первом форма поисковая где значения передаются в состояние. Второй компонент отрисовывает json . Я хочу при использования поиска перекидывать значения в компонено с отрисовкой и отдавать их в фильтр. Правильно я мыслю или нет подскажите пожайлуста.https://codesandbox.io/s/festive-moser-u7cnr?fontsize=14