С самого рождения JavaScript в каком-то смысле был языком для манипулирования текстом — от веб-страничек в самом начале до полноценных компиляторов сейчас. Неудивительно, что в современных JS-движках достаточно много сил уделено оптимизации внутреннего представления строк и операций над ними. В этой статье я хочу рассмотреть, как могут быть представлены строки в движке V8. Попытаюсь продемонстрировать их эффект, обогнав C++ в очень честном бенчмарке. А также покажу, в каких случаях они могут…
⚡заряженные⚡ серверные приложения с помощью Vite SSR BoostВсем привет! Меня зовут Михаил, и я являюсь СТО в одной IT компании. Сегодня я хочу кратко рассказать вам о мотивах создания собственной библиотеки для разработки React-приложений с поддержкой SSR (серверный рендеринг) и поделиться результатами этой работы.Как известно, великие дела начинаются с малого. В нашем случае у нас было небольшое количество React-приложений без поддержки SSR, которые в конечном итоге требовали перехода на серв…
В этой статье я хочу поделиться информацией, которая будет полезна всем, кто использует redux или @reduxjs/toolkitДанные библиотеки предоставляют большое количество полезных утилит, в этой статье я расскажу об одной из них – bindActionCreatorsОдна из проблем, преследующая почти всех, кто использует вышеупомянутые библиотеки - невозможность использования action(), предварительно не обернув его в dispatch(). Это порождает большое количество бессмысленного кода:const dispatch = useDispatch() con…
Всем привет :)Я Никита, уже больше 4 лет занимаюсь фронтендом, погружаюсь в инфраструктуру и кайфую от IT мира и комьюнити около веба, частенько читаю Хабр и решил попробовать написать сам.Решил сделать цикл статей и рассказать про опыт добавления динамических элементов на страницу с помощью drag and drop и получения данных с bff. Предварительно разбив на три части.Описание решения, технологий и мотивацияТехническая часть с кодом про структуру компонентов и Drag and Drop решениеТехническая ча…
Около 5 лет назад я пересел с Реакта на второй Ангуляр и первое, чего мне там не хватило был модуль angular-resource из первого Ангуляра. Вменяемых аналогов я не нашел, поэтому за неделю написал свою библиотеку. Решение оказалось настолько удачным, что практически без изменений дошло до сегодняшнего дня. Используется в куче проектов, работает стабильно (не смотря на то, что до сих пор там нет ни одного теста), в общем, есть о чем рассказать.Промисы наше всёПойдем от простого к сложному. Чаще в…
Photo by Indira Tjokorda on UnsplashВведениеВ современном мире веб-разработки часто возникают ситуации, когда необходимо эффективно управлять большим объемом данных и производить сложные вычисления. Однако выполнение таких задач в основном потоке UI может привести к замедлению работы приложения и ухудшению пользовательского опыта. Вот здесь на помощь приходят веб-воркеры.Веб-воркеры позволяют выполнять сложные вычисления в фоновом потоке, освобождая основной поток для работы с пользовательским…
На многих веб-сайтах есть форма для загрузки файла. Для некоторых сайтов, таких как OneDrive или Google Диск, загрузка файлов является основной функцией. С течением времени веб-страницы становятся все более интерактивными. Таким образом, пользователи ожидают большего количества взаимодействий, таких как перетаскивание файлов или каталогов или вставка скриншотов.Давайте посмотрим, что предоставляют браузеры для загрузки файлов!<form method="post" enctype="multipart/form-data"…
Всем привет! Решил начать писать короткие статьи с маленькими фичами, которые могут помочь посмотреть на решение проблем немного под другим углом.Дано:Мы используем Fluent UI в нашем проекте. После перехода на React 18 мы начали получать ошибки такого рода: Ошибки в типах node_modules.Подобные ошибки могут возникать по вине любой рандомной библиотеки. Типичное решение:Из того что я находил в интернете - в основном рекомендуют поставить skipLibCheck: true или править и патчить. Можно также прос…
Skeleton Mammoth logotype.Введение.Существует множество отличных статей, посвященных скелетон загрузчикам, в которых рассказывается об их типах, случаях и необходимости их использования. Я не буду перечислять их здесь, вы можете легко найти их в своем любимом поисковике.После подробного изучения этой темы, я решил создать очень простое, гибкое, переиспользуемое, настраиваемое и легкое решение, которое подойдет для большинства случаев использования. В этой статье я опишу процесс создания этого …