Обновить
63.11

ReactJS *

JavaScript-библиотека для создания интерфейсов

Сначала показывать
Порог рейтинга
Уровень сложности

Ускоряем разработку в VSCode

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели24K

Привет, Хабр! Это моя первая публикация и хотелось бы начать с чего-то полезного для сообщества. С места в карьер… Я запилил расширение для VSCode, которое поможет автоматизировать создание файловой структуры компонентов.

Погнали

Оптимизация React-приложения: Display:'none' или перерендер

Время на прочтение3 мин
Охват и читатели6K

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

Читать далее

Разрабатываем библиотеку компонентов с помощью React и TypeScript

Время на прочтение8 мин
Охват и читатели19K


Привет, друзья!


В этой статье я покажу вам, как начать разработку библиотеки компонентов с помощью Vite, React, TypeScript и Storybook.


Мы разработаем библиотеку, состоящую из одного простого компонента — кнопки, подготовим библиотеку к публикации в реестре npm, а также сгенерируем и визуализируем документацию для кнопки.


Репозиторий с кодом проекта.


Если вам это интересно, прошу под кат.

Читать дальше →

Пять докладов для фронтендера

Время на прочтение3 мин
Охват и читатели4.1K

Всем привет!

Делимся полезными материалами с недавно прошедшего митапа Frontend Mix, где экперты ЮMoney и Альфа Банка рассказали, как они создают продукт. 

Читать далее

Перевод документации React Redux и проблемы переводчиков

Время на прочтение5 мин
Охват и читатели2.4K

Я решил перевести документацию react-redux, позвал напарника, и мы вместе решали проблемы, связанные с этим. Собственно, о проблемах и решениях пойдёт речь.

Ссылка на перевод

Кратко: поговорили с авторами библиотеки, развернули перевод на github-pages, получили домен, получаем обновления через свой сервер и хотим внимания)

Читать далее

Control flow with try/catch and Promises

Время на прочтение7 мин
Охват и читатели4.6K

Я не люблю магию, магией мы часто объясняем какое то поведение части приложения, библиотеки или фреймворка, которое не понимаем, а когда наконец прочитав документацию понимаем, как тот или иной функционал реализован на самом деле, ловим себя на мысли, что никакой магии нет, только грани нашего познания и что на самом деле все просто, когда разберешься.



Так вот как то раз смотря документацию Relay я наткнулся на мысль, что не понимаю, как работает связка Relay.useLazyLoad и React.Suspense.


В частности не понятно, как именно React.Suspense понимает, что вот прямо сейчас происходит асинхронный запрос и самое время отрисовывать fallback?

Читать дальше →

История о том как я переехал в США и искал тут работу. Офферы от MAANG и не только

Время на прочтение10 мин
Охват и читатели28K

В феврале 2022 года я наконец переехал в США по рабочей визе О1. Этому предшествовало 2.5 года работы над укреплением кейса, ожидание аппрува.

За 1.5 года до этой даты я начал готовиться к интервью на позицию Front End. Сейчас работаю Senior Front-End Engineer в Roku.

Мотивацией для данного поста и создания телеграмм канала по интервью Front-End инженеров стало отсутсвие подробной информации о том, как же выглядит этот процесс в США.

Читать далее

Визуализация алгоритмов сортировки

Время на прочтение28 мин
Охват и читатели20K

Приветствую всех, уважаемые читали! Меня зовут Сергей Семенов, я frontend-разработчик в компании Домклик. Эта статья посвящена созданию интерактивного приложения для визуализации алгоритмов сортировки. Надеюсь, многим из вас тема покажется интересной. Уверен, что вы успешно пройдёте через все этапы разработки и пополните свою копилку пет-проектов.

Читать далее

Под капотом у Mobx. Пишем свою реактивную библиотеку с нуля

Время на прочтение23 мин
Охват и читатели19K

Первое мое знакомство с Mobx началось с удивления. Я не понимал всю магию библиотеки и задавал себе вопрос: “А как это возможно?”. Кажется, в ней используются какие-то подкапотные возможности JS или Mobx вообще написан на другом языке. 

И вот, потратив 3 месяца в исходниках, я развеял для себя магию. Mobx все таки написан на JS и даже имеет множественные ограничения, которые нужно соблюдать, чтобы ваш браузер не взорвался.

В этой статье мы создадим свой Mobx с нуля, а так же свяжем его с React, через собственно написанный HOC observer. В конце у вас будет общее понимание реактивности, которое поможет в самостоятельном осмыслении не только Mobx, но и других реактивных библиотек и фреймворков.

Читать далее

Основные изменения React 18

Время на прочтение4 мин
Охват и читатели17K

Привет, меня зовут Кристина, я фронтенд-разработчик в Домклик. Хочу рассказать немного про основные изменения React 18.

Читать далее

React: разрабатываем кастомный useEffect

Время на прочтение10 мин
Охват и читатели7.9K


Привет, друзья!


В данной статье мы с вами разработаем кастомный хук, функционал которого будет аналогичен функционалу встроенного хука useEffect, за исключением того, что наш useEffect будет повторно выполняться только при изменении его зависимостей любого типа (неважно, примитивы это или объекты).


Предполагается, что вы хорошо знакомы с тем, как работает хук useEffect, а также с тем, когда и почему происходит повторный рендеринг React-компонентов. Если нет, вот парочка ссылок:



Этого должно быть достаточно для понимания того, о чем мы будем говорить. В дальнейшем будет приведено еще несколько ссылок для более глубокого погружения в тему.


Код проекта, с которым мы будем работать, можно найти здесь.


Начнем с примера.

Читать дальше →

On-Demand ISR в Next.js или как эффективно обновлять статический контент на сайте, поступающий из CMS или админки

Время на прочтение4 мин
Охват и читатели7.4K

В этой статье я расскажу, как и для чего, на одном из своих проектов, мы прикрутили новую возможность Next.js – On-Demand ISR (инкрементная статическая регенерация по запросу).

Читать далее

Пишем продвинутый планировщик с использованием React, Nest и NX. Часть 2: аутентификация

Время на прочтение10 мин
Охват и читатели14K

Друзья, всем привет! Меня зовут Игорь Карелин, я frontend-разработчик в компании Домклик. В прошлой части мы разобрались, как настроить и запустить проект, а сегодня продолжим создавать наш планировщик и поэтапно разберём создание аутентификации с помощью библиотеки Passport.

Читать далее

Ближайшие события

Как повысить скорость разработки с помощью общедоступных функций JavaScript

Время на прочтение10 мин
Охват и читатели11K

Практическое руководство по написанию лаконичного кода и повторному использованию вспомогательных функций JS в проектах.

Читать далее

Синтаксический сахар в Redux: Type to reducer и Redux toolkit для самых маленьких

Время на прочтение5 мин
Охват и читатели5.3K

Сегодня рассказ пойдет о двух удобных способах сократить рутину в Redux, которые мы используем в разных частях собственного проекта. Речь пойдет о малоизвестной библиотеке Type to reducer и довольно функциональном Redux toolkit. Почему нам было трудно жить с чистым Redux, зачем нужны вспомогательные инструменты и как они облегчают жизнь, читайте под катом.

Статья написана по итогам внутреннего митапа для нефронтендеров, проходившего пару месяцев назад, и рассчитана не только на тех, кто в теме.

Читать далее

Продвинутые хуки в React: всё о UseEffect

Время на прочтение5 мин
Охват и читатели85K

В этой статье рассмотрим советы и приёмы, которые помогут более профессионально написать код на React.

Читать далее

Как мы переходили на React-router v6: подводные камни и альтернативы

Время на прочтение8 мин
Охват и читатели23K

Мы перешли на шестую версии React-router. Это помогло нам решить несколько проблем, например, определение маршрутов в Switch рендерит точный маршрут, а не первое совпадение, а размер бандла уменьшился в 2 раза.  

В статье расскажем про опыт миграции и подготовительный этап, трудности, возникшие после миграции и ошибки, информации о которых нет в официальной документации, и пути их обхода. Также будет альтернативный способ перехода с помощью официального пакета.

Читать далее

Девять порочных практик React. Разбираем частые ошибки

Время на прочтение10 мин
Охват и читатели29K

Слово React регулярно слышат разработчики во всем мире. С момента своего создания эта библиотека стала невероятно популярной. Одно из главных преимуществ React в том, что она крайне вариативна в использовании, и это при определенных подходах делает ее довольно мощной и простой в освоении. Однако излишняя гибкость также является минусом: нередко программисты выбирают порочные практики и неверные методы работы с React.

Патрик Завадски, старший разработчик ПО в компании Northwestern Mutual, подчеркивает, что практики и привычки могут различаться от разработчика к разработчику, от команды к команде и от компании к компании. В любом случае, важно знать разные подходы к написанию кода в React — это хорошее подспорье для программиста в поисках оптимального для него решения.

Под катом — наш перевод статьи*, в которой Патрик сосредоточился на отрицательных примерах: некоторых из худших React-практик, которые он когда-либо видел (а возможно даже использовал сам). Материал призван помочь вам избежать подобных ошибок в будущем.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее

Skia — высокопроизводительная 2D графика для React Native

Время на прочтение5 мин
Охват и читатели12K

Пользователям Flutter не понаслышке знаком такой проект как Skia. Он является движком для рендеринга всего что мы видим на экране Flutter. С помощью Skia можно рисовать очень сложные элементы интерфейса да и в целом любые 2D сцены с поддержкой плавной анимации и различных эффектов. Так почему бы не взять это на вооружение, подумали ребята из Shoppify и выпустили React Native Skia - библиотеку позволяющую использовать Skia в экосистеме React Native.

Читать далее

React: разрабатываем HOC и хук для наблюдения за элементами

Время на прочтение9 мин
Охват и читатели15K


Привет, друзья!


В данной статье мы с вами разработаем HOC (Higher-Order Component — компонент высшего порядка) и хук (custom hook) для наблюдения за DOM-элементами на странице с помощью Intersection Observer API.


Функционал нашего HOC будет похож на функционал, предоставляемый такими пакетами, как react-lazyload или react-lazy-load. Основное его назначение будет состоять в отложенной (ленивой — lazy) загрузке компонентов. Суть идеи заключается в рендеринге только тех компонентов, которые находятся в области просмотра (viewport — вьюпорт), что может существенно повысить производительность приложения.


Назначением хука будет регистрация пересечения (intersection) наблюдаемого (observable) элемента с областью просмотра (или другим элементом). Этот хук предоставляет очень интересные возможности, парочка из которых будет рассмотрена в соответствующем разделе.


Репозиторий с кодом проекта


При разработке инструментов я буду применять систему типов, предоставляемую TypeScript.


Если вам это интересно, прошу под кат.

Читать дальше →