Как стать автором
Поиск
Написать публикацию
Обновить
26.91

ReactJS *

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

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

Как сделать React Server Components в Electron с помощью Next.js и без открытых портов

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.5K

Статья про то как заставить работать React Server Components внутри Electron приложения с помощью Next.js при этом не запуская локальный сервер и не открывая порты. С возможностью публикации стандартными инструментами. А также исследование зачем все это надо.

Читать далее

Как ускорить создание компонентов с помощью Plop-генератора или автоматизация рутинных задач в React

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

Что имеем?

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

Однако, несмотря на наличие единой системы, мы сталкивались с рядом проблем — делюсь тем, как мы их решали...

Ну ка расскажи

Создание простой CRM на Next.js и Prisma для B2B

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

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

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

Ещё до того, как я начал заниматься разработкой, мне пришла идея поучаствовать в создании собственной CRM-системы и глубже погрузиться в процесс её разработки. Спустя несколько лет я начал заниматься веб-разработкой, и в какой-то момент понял, что даже небольшому бизнесу, где я работал, нужна CRM. Я пробовал использовать таблицы в Google Docs, тестировал триальные версии популярных CRM, но они были перегружены ненужной информацией и казались неудобными. Так что я решил создать что-то простое, что будет удобно мне и, возможно, другим.

В своей CRM я использую Next.js. Эта система не претендует на то, чтобы обслуживать тысячи пользователей, но она точно может решить задачи 1-2 небольших отделов продаж. У меня есть репозиторий на GitHub, и если кому-то это решение покажется интересным, его можно взять и доработать под свои задачи. В этой статье я постараюсь кратко описать текущий функционал, с какими трудностями я столкнулся и что удалось внедрить в качестве новых гипотез.

Читать далее

Тестирование redux store middleware

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.2K

Бывает ситуация, когда нам необходимо протестировать middleware, либо асинхронное событие, которые возникает в хранилище redux.

Цель этой статьи в том, чтобы показать как тестировать action в redux store.

Есть готовое решение, redux-mock-store, но оно не позволяет оперировать реальным хранилищем, через него мы можем только проверить был вызван тот или иной action, а данные которые сохраняем мы в store, не можем проверить.

Читать далее

Руководство по Convex. Часть 1

Уровень сложностиСредний
Время на прочтение47 мин
Количество просмотров2.3K


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


В этой серии статей я рассказываю о Convex — новом открытом и бесплатном решении BaaS (Backend as a Service — бэкенд как услуга), которое выглядит очень многообещающе и быстро набирает популярность среди разработчиков.


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


Эта первая часть серии, в которой мы поговорим о функциях и базе данных Convex.

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

Введение в AI Selfie Background Remover с использованием TensorFlow.js для React-приложений

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

Я создал "React Selfie AI Background Remover" — компонент React, который использует TensorFlow.js для удаления фона с изображений людей прямо в браузере.

✨ Основные особенности:

🤖 Использует MediaPipe Selfie Segmentation для точной сегментации объектов.

⚙️ Легко интегрируется в любое React-приложение.

🖼️ Доступно live demo для тестирования.

Вы можете найти компонент здесь:

📦 NPM

💻 GitHub

Читать далее

Что нас ждет в Next.js 15: обзор заявленных новинок

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.4K

Привет, на связи Майя из Spectr. Сегодня я поделюсь обзором последней, пятнадцатой версии Next.js. В статье мы разберем интересные улучшения: React Compiler, улучшенные сообщения об ошибках гидрации в ‘use-client’, исправление поведения кэширования, Partial Prerendering (PPR), API next/after, обновленный дизайн create-next-app и оптимизацию бандлинга внешних пакетов.

Узнать о функциях Next.js 15

Vike — современный SSR-фреймворк

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7K

Всем привет. Я являюсь ведущим frontend-разработчиком компании 21Yard. Мы разрабатываем сервис для поиска строительных подрядчиков. На проект я пришел желторотым масленком, который мало смыслил в seo-продвижении продукта, но жизнь внесла свои коррективы, и сейчас я хочу рассказать, как я vike покорял.

Придя на проект, я с энтузиазмом взялся за дело. На момент старта моей работы у нас уже существовал интернет-портал, написанный на php. К сожалению, он был написан на устаревшем фреймворке, поэтому было принято решение переписать его с нуля на чем-то современном - выбор пал на React. Однако, параллельно кодингу шел и маркетинг. К работе был привлечен seo-специалист, по указаниям которого мне нужно было вносить микро-правки в старый портал. Тогда я узнал, что такое seo, и что для него нужен ssr...

Читать далее

Многопоточность в NextJS: как запустить и нужно ли?

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

На определённом этапе своей карьеры я задался вопросом: может ли Next.js работать в многопоточном режиме? Оказалось, что нет. Это побудило меня разобраться, как можно организовать многопоточную работу Next.js и насколько это оправдано для сайтов с высокой нагрузкой.

Читать далее

Что интересного в React 18

Время на прочтение10 мин
Количество просмотров6.1K

Привет! Я Дима, фронтенд-разработчик в Surf. Сегодня рассмотрим самую популярную библиотеку для фронтенда — React. Что было в React18? Давайте узнаем!

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

Путешествие по Next.js: от ошибок с not-found до форка next-runtime-env

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

Недавно столкнулся с интересным багом в Next.js. Если на странице not-found делать навигацию через router.push(pathname), теряются все переменные окружения, которые мы инициализируем через библиотеку next-runtime-env (значение window.__ENV становится undefined).

В проекте мы используем next-runtime-env, так как придерживаемся подхода Build once, deploy many — это позволяет держать один Docker-образ, в который при запуске прокидываются нужные переменные окружения. Next.js из коробки не поддерживает такое поведение, ведь он хочет собирать env-переменные на этапе сборки приложения.

Баг проявился на not-found странице, где у нас есть кнопка, позволяющая создать элемент в один клик, если что-то не найдено. Этот же компонент кнопки используется и на других страницах, и вот что интересно: на остальных страницах router.push(pathname) работает корректно, а на not-found — нет.

Сначала я подумал, что проблема кроется в next-runtime-env. Наверное, библиотека переопределяется при обновлении страницы, потому что скрипт, устанавливающий переменные в window.__ENV, размещён в root layout. Я также пробовал версионировать Next.js, предполагая, что баг связан с определёнными версиями фреймворка, но это не дало результатов. В итоге, временным решением стало использование window.location.href, что предотвращало рефреш страницы и помогало сохранить переменные.

Однако на этом история не закончилась.

Читать далее

Анонс VoidZero — следующее поколение инструментария для JavaScript

Время на прочтение5 мин
Количество просмотров8.8K

Сегодня было анонсировано следующее поколение инструментария для JavaScript от автора Vue и Vite. В рамках начального финансирования было привлечено $4.6 миллиона, при этом основными инвесторами стали Accel и Amplify. В свете этого анонса важно понять контекст, в котором он происходит, и значимость изменений, которые он приносит.

Пятнадцать лет назад JavaScript был в основном языком сценариев для браузеров. Сегодня он стал самым широко используемым языком, применяемым для создания веб-приложений, мобильных приложений, игр и даже Интернета вещей (IoT). Несмотря на развитие множества инструментов для решения все более сложных задач, экосистема JavaScript остаётся фрагментированной, что делает настройку совместной работы зависимостей одной из самых сложных задач. 

Эван Ю вложил значительные усилия в изучение стека инструментов JavaScript и разработку абстракций для упрощения работы разработчиков, что привело к созданию Vite в 2020 году. За четыре года Vite стал одним из ведущих инструментов для веб-разработки, поддерживаемым множеством мета-фреймворков и обладающим более чем 15 миллионами загрузок в неделю. Vite зарекомендовал себя как общий инфраструктурный слой для следующего поколения веб-фреймворков.

Читать далее

Мой вариант аутентификации с помощью JWT в FastAPI + React

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

Друзья, приветствую! В создании своих pet проектов часто возникает задача аутентификации пользователя. Это может быть связано с персональным отображением страниц, настройки доступа и т.д. В этой статье я хочу показать свое решение с помощью Python,FastApI и React.

Читать далее

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

Что нового в React 19

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров32K



React 19 на подходе. Команда React анонсировала предрелизную версию React 19 в апреле. Это крупное обновление принесет с собой ряд улучшений и новых паттернов, нацеленных на повышение производительности, удобство использования и опыта разработки.


Многие из этих возможностей были представлены в экспериментальном режиме в React 18, но в React 19 они станут стабильными. Давайте подготовимся к этому обновлению.

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

Визуализация покрытия автотестами для gRPC сервисов

Время на прочтение15 мин
Количество просмотров3K

В данной статье хочу рассказать про инструмент измерения покрытия gRPC сервисов tests-coverage-tool, написанный на языке Golang. Основная задача инструмента — автоматическое измерение покрытия требований на основе proto контрактов. Поговорим про использование в автотестах, концепцию, отчет и кратко про архитектуру самого инструмента tests-coverage-tool.

Читать далее

How to: Как быстро и эффективно разместить статичный React app c помощью сервисов AWS + custom domain name + SSL

Время на прочтение4 мин
Количество просмотров1.6K

Приветствую всех любителей кодинга!

Сегодня мы с вами рассмотрим на примере простого React-приложения, как легко и дешево сделать его доступным для пользователей с помощью сервисов AWS.

Читать далее

Как работает фронтенд: от загрузки сайта до современных инструментов

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

Фронтенд — это то, что видит и с чем взаимодействует каждый пользователь интернета, но как он работает на самом деле?

Читать далее

@tanstack/react-query + react typescript

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

Хотелось бы рассказать как я использую @tanstack/react-query в своих проектах при построении архитектуры приложения

Читать далее

Библиотека RRC для управления запросами и кэшем на базе Redux: [лучшая] альтернатива RTK-Query и другим решениям

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.9K

Вашему вниманию представляется react-redux-cache (RRC) - легковесная библиотека для загрузки и кэширования данных в React приложениях, которая поддерживает нормализацию, в отличие от React Query и RTK Query, при этом имеет похожий, но очень простой интерфейс. Построена на базе Redux, покрыта тестами, полностью типизирована и написана на Typescript.

Читать далее

Рендеринг в React. Чем живет компонент?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7.2K

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

План статьи:

1) Рендеринг в контексте React

2) Жизненный цикл компонента

2.1) Mounting компонента

2.2) Update компонента

2.3) Unmounting компонента

3) Некоторые вопросы для самопроверки

Читать далее

Вклад авторов