Andrey
А атрибуты - стандарт XML
а буквы - алфавита к чему это?
Victor
мы его не юзаем
Sergey
мы его не юзаем
А ну да. Это же решает все проблемы
Sergey
Тс кстати ту же проблему иметь будет
Y
В общем, я создаю 800 компонентов (на основе массива, делаю через map). Естественно появляется провисание в полсекунды при переходе на страницу с этими компонентами. Я не эксперт, но судя по всему компоненты отобразятся только после того, как мап создаст их всех, что занимает время. Хочу спросить совета как оптимизировать?
Y
Что за компоненты ?
Репрезентация данных из массива
Y
добавляй группами в requestAnumationFrame )
Посмотрю что это такое, спасибо 😄
Андрей
Вот кампонент замаунитин. При смене роута page transition использую, пока новая страница появляется вижу старую, а старая страница брала данные из роута id, пре переходео роут поменялся id брать неоткуда, вижу некоторое время пока страницы анимируются 404 http://skrinshoter.ru/v/300519/wWmpWrVt
Bogdan
5 форм внутри родителя со стейтом - норм, почему нет?
как их рисовать поочереди тогда вопрос еще, видимо индекс нужен и как то по индексу рендерить?
Андрей
Залей нормально скриншот
Нормальный это какой?
Cenator 🐈
Нормальный это какой?
Картинкой а не ссылкой
Sm•ok
Картинкой а не ссылкой
В чате запрещена медиа ?
Андрей
На видео видно как это происходит
Cenator 🐈
Victor
как их рисовать поочереди тогда вопрос еще, видимо индекс нужен и как то по индексу рендерить?
ну это уже вам виднее, по какой логике их рендерить. Можно завести массив с названиями шагов/форм и рендерить нужные компонент через увеличение индекса в массиве
Андрей
Вот урл с id 1 для записи. А при анимации страниц предыдущуюю еще видно но ей не откуда больше брать id и выводится 404
Андрей
Anton
ребят, подскажите, как передать socket в каждый компонент, можно ли как-то засунуть его в Provider, чтобы он был доступен во всех компонентах?
Anton
Можно передать как пропс, если использовать рендер вместо компонент
ну тогда его нужно передавать в каждый компонент отдельно, а я хотел сделать чтобы я передал его в провайдер и он был доступен везде, как стор
Andrey
ну тогда его нужно передавать в каждый компонент отдельно, а я хотел сделать чтобы я передал его в провайдер и он был доступен везде, как стор
передай в провайдер, и юзай консумера везде, в чем трабла (хотя сокеты это все же больше к стейт менеджменту)
Victor
Есть еще такая дев тулза для трекинга ре-рендера - https://www.npmjs.com/package/why-did-you-update
Anton
передай в провайдер, и юзай консумера везде, в чем трабла (хотя сокеты это все же больше к стейт менеджменту)
просто у меня опыта с реакт-редакс особо нет, и я хз норм ли это практика передавать что-то в провайдер кроме стора
Victor
Вдруг у вас тупо не оптимизировано
Andrey
просто у меня опыта с реакт-редакс особо нет, и я хз норм ли это практика передавать что-то в провайдер кроме стора
практика норм, но если это соединение с сокетами, то лучше им рулить через тот же редакс (а еще лучше взглянуть на effector 👀)
Victor
айдишник сокета в redux, а в компонентах уже подключаться напрямую по переданному айдишнику. В самом сторе я б хранил только примитивы
artalar
А атрибуты - стандарт XML
Верстка должна быть статичной. Императив для управления должен описываться в ЖС. Простые правила JSX 🤷‍♂ Нужны для того что бы код можно было читать быстрее, даже не вдумываясь в него.
Victor
как? :)
Max
В переменную
Victor
т.е. <a className={someVar}> это ок?
artalar
Ну там в статье есть пример - сначала вычисления, потом результат <a class={linkClass}...
Victor
так, а почему <a display-if={showVar}> не ок?
artalar
т.е. <a className={someVar}> это ок?
Да, так верстка выглядит максимально статично
artalar
так, а почему <a display-if={showVar}> не ок?
Потому что здесь атрибут не передается ребенку (и передает ответственность), а вычисляет что-то прям в верстке.
Victor
и что с того? весь JSX в итоге превращается в ужасные React.createElement, но нас же это не останавливает?
artalar
и что с того? весь JSX в итоге превращается в ужасные React.createElement, но нас же это не останавливает?
Ну вы понимаете что весь jsx про "что" показать, а data-if про "когда"?
artalar
Это может быть не заметно, но именно из-за таких мелочей код читать в итоге тяжелее
artalar
С миру по нитке ..
Victor
Я показывал пример кода - на наш взгляд использование data-if делает его легче для чтения, по сравнению с оборачиванием каждого компонента, который надо скрыть/показать в выражение
artalar
Я показывал пример кода - на наш взгляд использование data-if делает его легче для чтения, по сравнению с оборачиванием каждого компонента, который надо скрыть/показать в выражение
А его не надо в выражение оборачивать)) я уже говорил, ЖСу не место в ЖСХ. Все вычисления нужно либо делать заранее, либо делать промежуточные компоненты, которые будут по пропсам делать какие-то вычисления
Victor
Первый год мы именно так и писали и потом умышленно перешли на display-if. Т.е. это не спонтанное решение "АААааа, новый плагин, давайте его", мы искали способ решить проблему и мы ее нашли. Никаких минусов за 3 года и десятки тысяч строк код не было. Понимаю, многие когда ушли с ненавистного Ангуляра с его ng-hide/ng-show и снова увидеть это в Реакте - не совсем то, о чем мечтаешь. Но это был удобный инструмет
artalar
Отмечу что я не обещаю что кода будет меньше, но это норм, зато он будет лучше по семантическим доменам разбросан
Y
Кто какую UI библиотеку использует? Посоветуете легковесную, но приятную? Использовал Semantic UI и Grommet.
Kurzdor
element-react
Ты на 2 фронта работаешь? В чате вуёв тебя вижу прост
Vladislav
Вью для себя
Vladislav
Реакт для работы
Vladislav
Как эта фича называется?
Vladislav
Именно официально
Vladislav
Material-UI
Как по мне, материал дизайн уже всем надоел
Vladislav
Все отказываются от него
Kurzdor
Мне старый не очень нравится материал
Dmitriy
Все отказываются от него
Отказываются неосиляторы