Андрей
Ui разный это ок, но то, что апи говно у компонентов, это дело кривых рук
А причём тут апи? Я говорю о том, что "огромная экосистема реакта" - это пшик.
Андрей
а как 4000 зависимостей в каждом сраном react-create-app?
Если ты посмотришь что это за пакеты, то обнаружишь, что это древние устаревшие библиотеки, которые идут от твоих инструментов сборки.
Андрей
ЗАнимательный факт: мой yarn.lock за последний год стал где-то на 1к строк короче, хотя количество зависимостей увеличилось. Понемногу жизнь улучшается.
Anonymous
кто нить вообще ещё юзает бабель? я вот лично ts -> es5 сразу делаю и оттуда вебпаком, хотя он меня уже достал этот вебпак
Ruslan
но зачем?
потому что не все пишут на ts, логично?
Андрей
но зачем?
Потому что tsc генерит такой себе код как минимум.
Kurzdor
простите, но вы не могли бы сначала документацию открыть на 10-15 минут
ну я понял принцип PureComponent, но теперь вопрос, а в каких к примеру компонентах 100% можно заюзать PureComponent/React.memo почему просто нельзя ебашить на Component/простой функции?
Андрей Чайковский
ну я понял принцип PureComponent, но теперь вопрос, а в каких к примеру компонентах 100% можно заюзать PureComponent/React.memo почему просто нельзя ебашить на Component/простой функции?
Имхо, почти все компоненты должны быть Pure/memo, чтобы не было лишних рендеров. Может быть лишней оптимизацией, но в большинстве случаев это нужно
Андрей
да нормально там все
Настолько, что сами MS написали плагин ts к бабелю)
Anonymous
Настолько, что сами MS написали плагин ts к бабелю)
скинь мне плохой код из tsc, интересно даже стало
petyappetrov
нет
ты так только угробишь свою производительность. не надо везде проверять shallowequal
Kurzdor
нет
вот млять как ты сделаешь shouldComponentUpdate в функциональном компоненте блять, я до сих пор не понимаю зачем когда и почему PureComponent/memo юзать ааааааа
Андрей Чайковский
ты так только угробишь свою производительность. не надо везде проверять shallowequal
Ключевое слово -- почти, следует понимать, где возможен лишний рендер, а где нет
Anonymous
так народ, а кто ни разобрался в исходниках как именно хук внутри функции кидает событие на уровень выше
Андрей
скинь мне плохой код из tsc, интересно даже стало
Проблемы начинаются когда ты генеришь код под конкретный браузер, а не под версию стандарта. Бабель гегрит код как раз под нужный рантайм, tsc так не умеет.
Андрей
es5 уже везде
Это избыточно.
Anonymous
что избыточно? ts компилит код в es5, который есть в 99.9% браузеров
Kurzdor
стоп, стоп так, к примеру есть парент компонент поебать что именно в чайлде 3 кнопки припустим стейт меняется в паренте - тогда происходит ререндер кучи кнопок с мемо этого не происходит?
Андрей
что избыточно? ts компилит код в es5, который есть в 99.9% браузеров
А мне не нужны 99% браузеров. Мне нужны 80% браузеров.
Anonymous
petyappetrov
что избыточно? ts компилит код в es5, который есть в 99.9% браузеров
бабель нужен не только для транспайлинга кода, у него крутые плагины, babel-plugin-import маст хев
Андрей
у тебя своя какая-то особая жизнь
Нет. Эти 80% мировых браузеров - 98% моих клиентов. Если я буду собирать проект в es5, то это увеличение бандла на процентов 40. Зачем мне это? es5 увеличивает размер, длительность парсинга. Одни минусы.
Ivan
Всем уо, бабель-флудеры. Подскажите за next — у меня есть, например, 100 .md файлов, которые я загружаю через @next/mdx. Я хочу замутить из них 100 статических страничек, чтобы ssr-оптимизация во все поля. Я или описываю каждую страницу из сотни со статическим импортом или next водит мне болтом по губе, я правильно понимаю?
Anonymous
бабель нужен не только для транспайлинга кода, у него крутые плагины, babel-plugin-import маст хев
внезапно, сборщик делает все что угодно кроме нормальной сборки с три-шейкингом, трансплаер смотрит на вебпак и тоже начинает делать то что не должен, вашу ж мать куда все это катиться, а сделать так, что бы бабель отдавал вебпаку AST ни один хрен не догадался
Андрей
у тебя своя какая-то особая жизнь
А ты можешь перечислить браузеры, которые поддерживаешь? Мне просто интересно. Мы поддерживаем браузеры, которые умеют в esmodules. Там далеко не es5.
Kurzdor
Да
уже вроде понял на примере 👆
Андрей
я даже не знаю, я просто отдаю всем es5
А с вёрсткой как? Ты её транспилить не можешь.
Anonymous
хочешь уменьшить размер кода и уМЕНЬШИТЬ!!! время парсинга выкидывай нахер этот реакт и пиши руками
Anonymous
Это нерационально.
нерационально это 4000 зависимостей, каждую оборачивать в модуль и делать ещё кучу всякого говна, для сраной формы из 10 полей
Ivan
нерационально это 4000 зависимостей, каждую оборачивать в модуль и делать ещё кучу всякого говна, для сраной формы из 10 полей
Чувак, тебя никто не заставляет. Отказаться от реакта просто. Удали нодмодули и живи как человек.
Anonymous
фронтенд сейчас это такое поле бое, где сначала толпой проблеммы создаются, а потом героически костылями решаются. Я не против реакта, но тогда не надо ныть за размер бандла и скорость парсинга, если у вас адские требования к скорости загрузки и отзывчивости вам стоит действительно подумать о том что ваша разработка станет дороже и многие вещи вы будете делать не так как 95% фронтендеров.
Kurzdor
Ты походу не понимаешь что эти 4к зависимостей не идут в браузер.
4к зависимостей это может быть твоя сборка из вебпака и плагинов, вот это я еще понимаю но вот проект, это уже пиздец
Андрей
это каких например?
Не транспилить class-properties, если ты поддерживаешь только последний хром, к примеру. Не транспилить классы, если у тебя все нужные рантаймы поддерживают классы.
Ivan
это каких например?
Напоминаю — вы говорите про транспиляцию в ес5 и бабель
Nikolai
Да он набрасывает, тролль просто
Андрей
npm ls —prod нам ведь не покажет только то что в браузер идёт?
Есть webpack-bundle-analyzer, который тебе покажет какие пакеты в твоём бандле.
Kurzdor
лично я не видел такое что бабель попадал в прод бандл
Kurzdor
а вообще надо дать cra по шапке за то что все там в dependencies
Anonymous
а вообще надо дать cra по шапке за то что все там в dependencies
а как ты будешь на проде собирать без всего этого говна?
Kurzdor
а он кол-во показывает?
https://www.bundle-analyzer.com/
Андрей
ну такое себе, только последний хром...
Кому-то и этого достаточно. Но эти примеры показывают, что есть люди, для которых транспиляция в es5 избыточна. ля меня например. Мы поддерживаем только браузеры, которые умеют в esmodules. Там гораздо больше API, которые не нужно обеспечивать на этапе транспиляции.
Андрей
а он кол-во показывает?
Если видишь незнакомое слово, то идёшь в гугл.
Anonymous
Если видишь незнакомое слово, то идёшь в гугл.
да я его использовал, только я не помню что бы он сумму модулей писал
Андрей
а как ты будешь на проде собирать без всего этого говна?
Собирать бандл != тащить все зависимости в браузер. А что на машине разработчика - дело десятое.
Anonymous
Собирать бандл != тащить все зависимости в браузер. А что на машине разработчика - дело десятое.
да знаю я, ты что думаешь я не знаю, что вебпак в браузер не идёт?
Андрей
да знаю я, ты что думаешь я не знаю, что вебпак в браузер не идёт?
По разговору это выглядит так. Потому что я не представляю о каких 4к зависимостях ты говоришь.
Андрей
@spatNeHochu Так что? Ты вёрстку пишешь для каких браузеров? Для всех начиная с IE9? Или всё же ты можешь собирать под конкретные браузеры, а не es5?