Обновить
69.43

ReactJS *

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

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

Микрофронтенды на React и ExtJS

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели16K

Хочу представить решение по внедрению микрофронтендов в компании РТ МИС с помощью Custom Elements, чтобы связать приложения написанные на библиотеке ExtJS и React.

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

Читать далее

Как стать middle frontend-разработчиком бесплатно от Яндекс Практикум

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

С момента моей последней публикации не прошло и года, но мне уже есть чем поделиться. Эта статья будет продолжением и возможно не последней. Так уж получилось, что мне удалось бесплатно получить тикет на курс middle frontend-разработчик от Яндекс Практикума по программе Цифровые профессии 2022. Этим опытом я бы и хотел с Вами поделиться. Статья будет полезна тру верстальщикам, джунам фронтендерам и тем кто в поиске обучения

Кратко о моем стеке на начало курса: нативный JS, браузерные события, DOM API, AJAX, SCSS, GULP, адаптивная верстка, навыки работы с вектором и растровыми изображениями.

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

Читать далее

Почему шаблоны в $mol такие странные?

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

Здравствуйте, меня зовут Дмитрий Карловский и я.. дуб. Я пустил свои корни в адептов святого $mol, и выращиваю из них сверх‑людей, способных каждый год сбрасывать былые привычки и убеждения, но тут же пускать побеги свежих идей, базирующихся на прочном рациональном основании.

А в качестве примера, позвольте посеять и в вас зерно сомнения в правильности традиционных решений, и показать, почему синтаксис языка композиции компонент в $mol такой странный, и почему другие языки для этой задачи совсем не подходят.

Стать сверх-человеком за 5 мин

Представляю универсальный responsive header для React.js

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

Вы когда-нибудь думали о том, чтобы создать свой стартап? Почти каждому стартапу (да и +/- любой компании) нужен лендинг/сайт. А у каждого сайта вверху есть хедер с меню навигации. При чем в наше время он обязательно должно быть адаптивным, чтобы одинаково хорошо работать как на компьютерах, так и на мобильных телефонах и планшетах.

Зачем каждый раз тысячи фронтендеров разрабатывают этот хедер тратя множество часов опять и опять, когда почти все хедеры имеют один и тот же функционал и вид? Почему для этого до сих порт нет вменяемой библиотеки, позволяющей решить проблему подключением одного лишь компонента не тратя уйму времени? Подумала я и создала npm-пакет для React.js, представляющий собой универсальный хедер. Я реализовала большинство фич, которые вам могут потребоваться.

Читать далее

Create react app умирает?

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

Зайдя на официальный сайт React я не сразу понял, что произошло.

Когда мы заходим на страницу документации React в раздел установки, мы можем увидеть различные предложенные варианты установки фреймворков React, а именно Next.js, Remix, Expo, Gatsby. Но при этом нет явного варианта установки самого React в чистом виде. Неужели React сдает позиции.

На самом деле это не так. Давайте разберемся, что же происходит в настоящее время и что собираются делать разработчики.

Читать далее

React: интересная схема работы с формами

Уровень сложностиСложный
Время на прочтение14 мин
Охват и читатели30K


Hello, world!


В этой статье я хочу рассказать о схеме (назовем ее так) работы с формами в React, которая на сегодняшний день кажется мне наиболее эффективной. Эта схема предполагает использование React Hook Form для обработки форм и Zod для валидации пользовательских данных. Применение данной схемы имеет несколько существенных преимуществ по сравнению с использованием других решений или реализацией необходимого функционала вручную. Главными преимуществами являются минимизация количества шаблонного кода и автоматическое выведение типов (type inference).


Для тех, кого интересует только код, вот ссылка на соответствующий репозиторий.


Руководства, шпаргалки, вопросы и другие материалы по JavaScript, TypeScript, React, Next.js, Node.js, Express, Prisma, GraphQL, Docker и другим технологиям, а также Блог по веб-разработке.


Интересно? Тогда прошу под кат.

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

Трансплантация реактивности

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели4.7K

Здравствуйте, меня зовут Дмитрий Карловский, и я.. тот самый чел, который написал реактивную библиотеку $mol_wire. Именно благодаря мне вам есть сейчас чем пугать детей перед сном.

Но просто написать классную библиотеку — слишком мелкая цель. Построить на ней богатый фреймворк с кучей батареек — уже интересней, но всё ещё не достаточно амбициозно. Разработанный мной подход может стать lingua franca в коммуникациях между библиотеками, состояниями браузера, и даже между удалёнными узлами.

Берегите синапсы, сейчас будет настоящий киберпанк..

Открыть ментальный сокет

Вечный RnD: chunk flushing для серверного рендеринга React + WMF

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели3K

Все говорят про webpack-module-federation - микрофронты тут, микрофронты там.
— "А мы уже внедрили", "а мы уже построили микрофронтовую-архитектуру", "мы релизим независимо".

Но начинаешь расспрашивать, "а что сделали", "а как связали" - выходит что за всеми этими броскими фасадами скрывалось добавление вызова ModuleFederationPlugin(...) на уровне рядового потребителя, в лучшем случае с подстройкой конфигурации под локальный и продуктовый стенды. А независимые релизы - обычный авто деплой trunk'а.

На этом фоне доклады, повествующие о динамическом развертывании k8s pod'ов с версиями микрофронтов, указанных в заголовках браузера (на базе argo-cd) производят вау-эффект. Но даже все эти истории имеют один общий недостаток.

На вопрос:
— А как вы реализовали SSR?

Следует ответ:
— Мы не стали этого делать, у нас админка / дэшборд / MVP / *.

Читать далее

Делаем бесконечную рабочую область без Canvas

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели8.4K

Рабочее пространство в нашем приложении представляет собой бесконечную доску, по которой могут перемещаться ноды. Необходимо реализовать масштабирование этого пространства и перемещение по нему. Все это мы делаем без использования Canvas, так как приложение построено на React, в дизайн-системе используется antd, а ноды могут быть огромными формами. Согласитесь, реализовывать такие интерфейсы было бы гораздо сложнее, не будь у нас доступа к нативным средствам HTML-5.

Читать далее

Внутри Mailion: как устроен фронтенд почты на миллион пользователей

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

Недавно мы представили защищенную корпоративную почтовую систему «Mailion. Сертифицированный» — единственную на российском рынке с действующим сертификатом ФСТЭК России. Продукт предназначен для работы с конфиденциальной информацией в крупных коммерческих и государственных организациях.

Речь о сложно устроенной и технологически разнообразной системе: Mailion включает в себя семь крупных модулей, более 400 собственных компонентов (не считая стилевых, вспомогательных и интеграционных обвязок), и содержит в целом почти 400 тыс. строк кода.

Под катом — наш рассказ об устройстве пользовательской части Mailion. Говорим об архитектуре фронтенда и о том, как и почему менялся его стек с начала разработки в 2017 году.

Читать далее

Кастомизированная страница логина на Auth0 на базе React

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели2.8K

Платформа Auth0 представляет собой онлайн сервис для аутентификации и авторизации и включает в себя управление пользователями, проверку их идентификационных данных, управление токенами и сессией. На стороне клиента данного сервиса необходимо осуществить обращение к уникальному URI и после аутентификации использовать полученные при обратном редиректе токены и кукис. Всю логику проверки данных пользователя, сохранения сессии и токенов берет на себя Auth0. После успешной аутентификации пользователя сервис Auth0 осуществляет редирект обратно на адрес своего клиента.

Auth0 предоставляет удобные UI компоненты для получения идентификационных данных — виджеты для входа, регистрации, восстановления пароля. Данные виджеты включают также возможности логина с помощью сторонних сервисов — вход через аккаунт Google, Microsoft, GitHub и многие другие.

Читать далее

Правильно ли вы используете useSelector в Redux?

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

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

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

Речь пойдет о проблемах, которые могут возникать при деструктуризации данных из стора с использованием useSelector.

Читать далее

React и Typescript: Создание динамического компонента на примере кнопки

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

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

Читать далее

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

Переходите на микрофронтовую архитектуру

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

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

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

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

Полезная ссылка с подробным объяснением концепции микрофронтенда.

Читать далее

Текстовый Инпут с возможностью выделять отдельные слова

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели3K

Разработка текстового инпута с выделением слов в React: неожиданные сложности и практические решения, выявленные в процессе реализации

Читать далее

Полное руководство по Remix. Часть 2

Уровень сложностиСредний
Время на прочтение34 мин
Охват и читатели5.8K


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


В этой серии статей я продолжаю рассказывать о Remix — новом фреймворке для создания клиент-серверных веб-приложений на JavaScript (React) со встроенной поддержкой TypeScript.


Remix позволяет разрабатывать так называемые PESPA (Progressive Enhancement Single Page Apps — одностраничные приложения с возможностью прогрессивного улучшения). Это означает следующее:


  • почти весь код приложения "живет" на сервере;
  • приложение остается функциональным даже при отсутствии JS;
  • JS используется только для прогрессивного улучшения UX (User Experience — пользовательский опыт).

Подробнее о PESPA и других архитектурах веб-приложений можно почитать здесь.


Очевидно, что разработчики Remix вдохновлялись Next.js и Svelte.


К слову, здесь вы найдете полное руководство по Next.js.


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


Это часть номер два.


Вот ссылка на часть номер раз.

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

Тестируйте свои React-компоненты с помощью Nightwatch и Testing Library

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

Взгляд на популярную Testing Library с Nightwatch

Мы создадим подробный пример проекта React с Vite, а затем воспользуемся Nightwatch и Testing Library для тестирования этих компонентов. Мы используем Complex example, доступный в документах React Testing Library, написанный с помощью Jest.

Читать далее

Разрабатываем полезное браузерное расширение легким движением руки

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.4K


Hello, world!


В этом небольшом туториале мы с вами разработаем простое, но полезное расширение для браузера с помощью Plasmo.


Наше расширение будет представлять собой вызываемый сочетанием клавиш попап с инпутом для поиска информации на MDN с выводом 5 лучших результатов в виде списка. Кроме основного функционала, мы добавим страницу настроек для кастомизации цветов и отображения хлебных крошек. Мы будем разрабатывать расширения для Chrome, которое также будет работать в Firefox.


Вот как это будет выглядеть:





Для тех, кого интересует только код, вот ссылка на соответствующий репозиторий.


Интересно? Тогда прошу под кат.

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

Пробую новые возможности Next.js 13

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели27K

Всех приветствую и желаю приятного чтения!

Next.js это fullstack фреймворк разработанный Vercel использующий последние разработки React.

Не так давно 25 октября 2022 года вышла версия 13. На данный момент последняя стабильная версия 13.2.3, и новые возможности все еще находятся в стадии бета теста, и не рекомендуется использовать в продакшен.

13 поддерживает все возможности версии 12. Для тестирования новых возможностей используется специальная директория app. Такой подход помогает попробовать новые возможности, в проектах, которые работали на версии 12.

В этой статье я пробую использовать только новые возможности версии 13, кому интересно больше узнать о Next.js рекомендую: Next.js: подробное руководство. Итерация первая.

Читать далее

Module Federation — что скрывается под кажущейся простотой

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели59K

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

Однако, почти все доклады на эту тему не показывают серьезность проблем, с которыми можно столкнуться на пути.

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

Начнем!

Читать далее