Тёмный
АйТи Синяк
АйТи Синяк
АйТи Синяк
Подписаться
Всем привет!

Я Фронтенд разработчик со стажем более 10-и лет в HTML, CSS и JS. У меня опыт в самых разных областях: социальные сети, бухгалтерский учет, недвижимость и мессенджер наподобие Телеграм. Технические требования к этим проектам самые разные: адаптивность, сокеты, кэширование сервис воркерами, бесконечные пуш уведомления и даже переиспользуемость кода между Веб версией и React Native.

Все эти задачи можно решать по-разному, и я хочу поделиться своим личным набором лучших практик. Надеюсь, что каждый сможет почерпнуть что-то новое и полезное для себя, а также это вдохновит других разработчиков поделиться своими знаниями на этом канале.

И самое главное, пишите комменты если вы с чем-то не согласны или вы знаете вариант лучше, ведь только в обсуждении рождается истина!

А пока наслаждайтесь нашим культовым плейлистом трюков с react-router
Комментарии
@VashkaStream
@VashkaStream 2 дня назад
Пишет video unavailable, уже и vpn ставил, и другие методы пробовал, может кто знает как посмотреть React Conf 2024?
@mikhailbaev
@mikhailbaev День назад
попробуй с другим vpn, у меня только с adguard vpn открывается
@VladimirS.-sk5kh
@VladimirS.-sk5kh 3 дня назад
Да неужели хоть кто-то нормально объяснил!
@user-xd6sc7cr3x
@user-xd6sc7cr3x 5 дней назад
2:49 обычно использую самописный хук useDebounce
@user-xd6sc7cr3x
@user-xd6sc7cr3x 5 дней назад
Спасибо за ответ)
@user-xd6sc7cr3x
@user-xd6sc7cr3x 5 дней назад
Это ютуб премиум ник меняет))0)
@paulokaydan
@paulokaydan 5 дней назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-XOA3HKXPSN0.html для очистки таймаутов и интервалов
@user-no7sl1yk3f
@user-no7sl1yk3f 6 дней назад
Вопрос по поводу forwardRef. Когда вы сказали что никогда не юзали его, я начал переживать что я что-то делаю не так. Такой юзкейс: Есть кнопка-элемент, который может использоваться в разных списках. Стили в списках должны быть одинаковые, но функциональность может отличаться. К примеру в первом списке я хочу чтобы этот элемент можно было перетаскивать (DnD) и вызывать callback, а в другом списке, чтобы просто вызывался callback, без DND. Для этого соответственно я в первом компоненте просто стилизую компонент (uikit), прокидываю пропсы, а для конкретного списка уже буду его использовать и обвешивать логикой в другом компоненте. Так вот библиотека react-dnd, например, возвращает мне ref, который я должен привязать к элементу, который будет перетаскиваться. Как можно ещё помимо forwardRef прокинуть ref в мой первый компонент, который находится в uikit? Я действительно возможно не знаю более правильного и простого способа, буду рад научиться
@ReAgent003
@ReAgent003 7 дней назад
я сначала думал, что это видос про хук для работы с query-параметрами в url
@user-vf9nq5hm2b
@user-vf9nq5hm2b 8 дней назад
[14:13 ] Пожалуй это сгодится для анимаций. Например легко сделать анимацию появления, но чтобы сделать какой-нибудь фейд-аут приходится либы для анимаций подключать, либо морочиться самому с тем чтоб фейд-аут отработал до того как компонент целиком не был убран из дома. Спасибо за видос, актуально)
@ashimov1970
@ashimov1970 8 дней назад
спасибо! но ззачем ты взял погонялово "синяк" (алкаш, для тех кто в танке)?
@it-sin9k
@it-sin9k 8 дней назад
Потому что синий и легко запомнить)
@Ernuna
@Ernuna 8 дней назад
прошел год, vite ~12 млн скачиваний, хотелось бы узнать мнение автора на этот счет с учетом vitest
@it-sin9k
@it-sin9k 8 дней назад
к сожалению я не работал еще с vite на реальных проектах и не могу оценить насколько он хорош) но очевидно, что vite теснит всех в SPA)
@barmaley9705
@barmaley9705 8 дней назад
Не понял прикол первого доклада что RN использует майкрософт в Windows 11 и в M Word? Разве RN каким то образом связан с нативным воспроизведением на винде?
@it-sin9k
@it-sin9k 8 дней назад
мы можем пилить на RN даже под десктоп) learn.microsoft.com/en-us/windows/dev-environment/javascript/react-native-for-windows
@andrewwest9309
@andrewwest9309 8 дней назад
Правильно ответил )
@it-sin9k
@it-sin9k 8 дней назад
красавчик!)
@tgitw-tq6iu
@tgitw-tq6iu 9 дней назад
Сама реактивность как таковая данным не сильно нужна. Особенно в вебе. Основная проблема, которую решает реактивность - это починка раеакт. Реакт максимально кривое подели. С убогим дизайном и реализацией. С нерабочими концепциями типа вдома и прочими фантазиями. Если реакт обновлять не таргентно - он будет тормозить совсем до невозможного уровня. Обновить его в принципе невозможно. Он никак не связывает отображение и данные из которых был построен. Точно так же как твой код в пример на 11:41 Поэтому его нужно как-то обновлять. Нужны средства связывания данных/отображения вопреки всем палкам в колёса, которые вставляет реакт. Если максимально упрощать проблему - имея id пользователя и изменения - ты можешь найти этого пользователя и применить изменения. Найти же какой компонент/дом связан с этим элементом не представляется возможным и потому все проблемы.
@tgitw-tq6iu
@tgitw-tq6iu 9 дней назад
Я не знаю на основании чего rx-поделку называют реактивной. Это обычный калбек к которому прикрутили цепочку преобразований. Реактивности там ровно ноль. Подобного подходу тысячи лет он используется в sh. Твой пример с ручной лапшой ничего не делает. Вопроса в инициализации вообще никакой нет. Инициализация в рамках динамической реактивной модели выделяется лишь потому что она строит зависимости между данными и инициализирует связи между ними. Твоя код ничего этого не делает. Вот добавился новый чат - что ты будешь с этим делать? Вызывать эту функцию заново и выкачивать всё?
@atlantatesla9348
@atlantatesla9348 10 дней назад
К этому видео понравились комментарии, как автора, так и других разработчиков. Интересные размышления, которые помогают лучше оценить нужно ли или нет в каждом конкретном случае использовать данный паттерн. Спасибо!
@j05gp
@j05gp 10 дней назад
Вечное глюкалово этот их RN, никогда он не заменит нативно написанное приложение. Хороший пример это апп инсты и фесбука, которые глючат то тут, то там. А поддерживать эту помойку еще хуже, выйдет новая версия RN и оно уже не собирается.
@ivanrussui4126
@ivanrussui4126 10 дней назад
Благодарю. Вопрос если ставишь Некст то там свой роутер, как тогда быть с Реакт роутером 7?)
@it-sin9k
@it-sin9k 10 дней назад
так это альтернативные варианты написания проекта, их не нужно вместе использовать :)
@ivanrussui4126
@ivanrussui4126 10 дней назад
@@it-sin9k это да) выходит что данный роутер актуален только юзая Реакт как отдельную библиотеку. Если юзать как советуют гуру-разрабы внутри фреймворка, то значит роутером 7 не пользуешься. Хотя я не знаю как там в Ремиксе и др с роутерами.
@omak3313
@omak3313 11 дней назад
6:09 "Это стоит посмотреть, чтобы набить руку". 6:46 "рекомендую посмотреть 2ую часть доклада". Вот только посмотреть не удаётся - трансляции на канале React Conf скрыты и ни с VPN, ни с настройкой страны в Ютубе под США, посмотреть не получается. Надеюсь, они временно скрыли, чтобы нарезать на отдельные видео и скоро выложат на канал. Пока что у них в плейлисте только React Conf 2021
@it-sin9k
@it-sin9k 11 дней назад
хмм, у меня открывается все. Может попробовать алтернативную ВПН?
@aleksprimetv
@aleksprimetv 11 дней назад
Мне лично понравилась Аврора))
@user-md5mw1tp3e
@user-md5mw1tp3e 11 дней назад
Не используем фреймворк на реакте. От слова совсем.
@it-sin9k
@it-sin9k 11 дней назад
так пока что мало кто вообще использует) NextJS не дает однозначно позитивного фидбека от разрабов :)
@mrakov
@mrakov 11 дней назад
Только у меня видео с таймкодами по ссылкам недоступны?
@it-sin9k
@it-sin9k 11 дней назад
Вероятно они ограничивают по региону, стоит использовать VPN
@VashkaStream
@VashkaStream 2 дня назад
нашёл путь как глянуть, у меня и с vpn не пускает?
@mrakov
@mrakov 2 дня назад
@@VashkaStream протоновский впн бесплатный пустил
@VashkaStream
@VashkaStream 2 дня назад
@@mrakov прикол, использую платный латвийский и он не пускал, спасибо)
@nickml5138
@nickml5138 11 дней назад
Лайк за всегда css-modules
@it-sin9k
@it-sin9k 11 дней назад
CSS modules вперед!)
@Markeldo
@Markeldo 11 дней назад
Не использовал useQuery, но отметил бы несколько моментов из видео: 5:20 - автор лукавит, он упаковал запрос и его обработку в отдельную функцию loadBookmarks, которая не является универсальной. Поэтому получается, что строки её кода нужно учитывать при сравнении количества строк. 7:35 предполагаю, что данные не стали undefined. Хук обратился к кэшу второй страницы, которого не было, поэтому в данные вернулся undefined. Аналогично, когда автор вернулся на первую страницу, хук посмотрел кэш первой страницы, увидел, что данные есть и вернул их. После этого данные перезапросились в лучших традициях swr
@it-sin9k
@it-sin9k 11 дней назад
По поводу первого момента, я сравнивал прод код один, с продовским кодом альтернативным. useQuery под капотом тоже включает тьму кода. Второй момент, вы хорошо объяснили. Спасибо!)
@Markeldo
@Markeldo 4 дня назад
@@it-sin9k не согласен,. useQuery - это универсальное решение, его код можно будет поменять везде по проекту, а вот специфическую функцию loadBookmarks так использовать вряд ли получится. Поэтому useQuery не включается в объём кода, а loadBookmarks стоит включить. Надеюсь, что смог донести свою мысль правильно 😂
@user-ik7rp8qz5g
@user-ik7rp8qz5g 11 дней назад
"Если вы не работали с sentry", то и начинать не надо. Представьте, что пакет для отправки логов на сервер раздувает ваш прод бандл в два раза. Это и есть sentry.
@it-sin9k
@it-sin9k 11 дней назад
ахахха) а какой вы бы порекомендовали?
@CJIu3eHb
@CJIu3eHb 10 дней назад
Мне кажется, для мобильных это не так важно, не переломается юзверь загрузить приложение при установке или апдейте.
@AlexanderBorshak
@AlexanderBorshak 11 дней назад
За видео спасибо! По поводу RN - использовал версию 0.59. И это был мой ХУДШИЙ девелопер експириенс, особенно в плане обновлений зависимостей, несоответствий между Android и iOS версиями пакетов и постоянных траблов со сборкой приложения под обе платформы. Flutter показался мне на порядок лучше. Может в RN что-то и поменялось с тех пор, но проверять нет никакого желания. Никому не советую.
@user-mj4qx6lw2y
@user-mj4qx6lw2y 11 дней назад
Спасибо тебе большое за твой труд❤
@it-sin9k
@it-sin9k 11 дней назад
Всегда пожалуйста!
@ryuu97
@ryuu97 11 дней назад
Как RN разработчик скажу - просто круто!) Очень радует стремительное развитие React Native
@it-sin9k
@it-sin9k 11 дней назад
да, количество импрувов воодушевляет)
@RafaelShepard
@RafaelShepard 11 дней назад
круто что RN так развивается, трогал его в году 2019-ом, он тогда не часто обновлялся я всегда хотел попробовать сделать десктопное приложение, это очень интересно)
@RafaelShepard
@RafaelShepard 11 дней назад
интересно, смогу ли я обернуть свою игру на Phaser обернуть в RN и сделать десктоп думаю что такая возможность есть, пошел читать (я знаю что Electron с этим уже справляется)
@user-qr8rs6zh5j
@user-qr8rs6zh5j 8 дней назад
@@RafaelShepard Есть хороший форк от майкрософт react-native-windows
@Quentinrei
@Quentinrei 11 дней назад
Спасибо 🎉🎉🎉
@liganshow
@liganshow 11 дней назад
Если пилишь просто desktop web, css module просто очень круто работает, очень удобно. Но когда есть mobile, desktop, планшет…. Как же просто невероятно удобно это делать например с sx пропсом из MUI
@it-sin9k
@it-sin9k 11 дней назад
мы пилили Web + Android + iOS. На React + React Native. Мы оставили верстку у каждого свою, а вынесли только бизнес логику) В итоге CSS Modules был на вебе, и очень похоже хранили стили на RN рядом с компонентом)
@liganshow
@liganshow 11 дней назад
@@it-sin9k это монорепа была или RN web?
@CJIu3eHb
@CJIu3eHb 10 дней назад
@@it-sin9k На RN очень удобно делать переопределение стилей извне (потому что они а-ля инлайн стили веба), а как это делать на CSS Modules - инлайн стилями?
@grigorykuimov
@grigorykuimov 11 дней назад
Спасибо за видео! Смотреть гораздо интереснее, чем саму конфу. Стоит сделать звук перехода между анимированным аватаром и фото с конфы тише и менее навязчивым.
@it-sin9k
@it-sin9k 11 дней назад
спасибо большое за фидбек! передал пожелания, человеку, кто монтирует все видео)
@dima__rx5fw3rm1n
@dima__rx5fw3rm1n 11 дней назад
Офигеть, RN Frameworks... Надеюсь, они не затащат туда SSR с серверными компонентами😅 <10 seconds later> - АйтиСиняк: "...писать серверный код прямо внутри RN приложения..." - Я: "Где там моя ракушка? Меня это пугает" и одновременно "Всё, теперь надо срочно запилить пет на RN!"
@it-sin9k
@it-sin9k 11 дней назад
ахахах) да) противоречивость наше все) новое и пугает и вдохновляет одновременно) я сам честно говоря не знаю, как теперь начинать новые проект, если кто спросит рекомендацию)
@dima__rx5fw3rm1n
@dima__rx5fw3rm1n 11 дней назад
Я открыл первоисточник, с трудом просидел минуту и понял, что реакт конфы ну прямо дико водянисты 😒
@it-sin9k
@it-sin9k 11 дней назад
есть такой грешок) но я с доблестью все для вас посмотрел))
@dima__rx5fw3rm1n
@dima__rx5fw3rm1n 11 дней назад
Вот было бы здорово все доклады вот так без воды послушать)
@it-sin9k
@it-sin9k 11 дней назад
А какой доклад интересно было бы в сокращении послушать? могу что то записать
@dima__rx5fw3rm1n
@dima__rx5fw3rm1n 11 дней назад
@@it-sin9k Пока идей нет. Я имел в виду, что иногда встречается такое. Возможно, у вас есть что-то на примете по эффектору?
@it-sin9k
@it-sin9k 10 дней назад
@@dima__rx5fw3rm1n к сожалению нет) я думаю позже буду делать обзор на эффектор :)
@dr.livesey5157
@dr.livesey5157 10 дней назад
@@it-sin9k Возможно, про реакт-компайлер было бы интересно людям. Мне так точно. Кстати, ты сам с докладами выступал где-нибудь? Интересно глянуть
@DubinArtur
@DubinArtur 11 дней назад
Лучшая фича конференции - возможность посмотреть её выжимку у IT Синяка)
@it-sin9k
@it-sin9k 11 дней назад
ахах) я вот пока записывал это видео, думаю боже как удобно было бы самому посмотреть такую выжимку))
@atlantatesla9348
@atlantatesla9348 11 дней назад
Ахаха, полностью поддерживаю)
@jumanov16
@jumanov16 11 дней назад
😍😍😍