Как стать автором
Обновить
53.07

ReactJS *

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

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

Urban Bot или как писать чат-ботов для Telegram, Slack, Facebook… на React.js

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

image


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


Чат-бот — это чаще всего отдельный чат в мессенджере, в котором вы общаетесь не с человеком, а с программой. Он может присылать сообщения в виде текста, изображений, кнопок и многих других UI элементов и реагировать на сообщения от пользователей. Современные чат-боты — это полноценные UI приложения внутри мессенджеров.

В отличии от большинства чат-бот библиотек, которые чаще всего просто оборачивают http запросы в функции с готовыми аргументами и предоставляют подписки вида bot.on('message', callback), иногда позволяя передавать контекст между вызовами, Urban Bot предлагает совершенно иной подход к разработке чат-ботов — через декларативное программирование и компонентный подход. Живой пример, написанный на Urban Bot, вы можете попробовать в Telegram, cсылка на чат-бот, и посмотреть код на GitHub.


Как мы заметили выше, чат-боты это полноценные UI приложения. А какой язык в 2020 и какая библиотека наиболее подходит для разработки UI приложений? Правильно, JavaScript и React. Такая интеграция позволяет легко и непринужденно строить чат-боты любой сложности без единого знания об API мессенджеров. Далее я расскажу, как создавать простые компоненты и на их основе строить сложных чат-ботов, работать с навигацией, создавать диалоги любой вложенности, писать одно приложение и запускать в любых мессенджерах, и многое другое.

Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии23

10 инструментов для повышения продуктивности React-девелоперов в 2020 году

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

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

Обычно, когда я начинаю новый проект, то использую собственный шаблон для тех инструментов, которые добавил в этот список. Также я работаю и с другими инструментами, вроде Material UI. Я их изучил, создал с их помощью несколько приложений и реализовал пару небольших проектов, после чего решил поделиться результатами.
Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии7

Работа со строкой запроса в React

Время на прочтение4 мин
Количество просмотров14K
Привет. Это та статья, о том пакете которого мне не хватало в работе с реактом.

image

А если быть более конкретно, то о пакете для улучшение и облегчение работы с запросами из поисковой строки.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Debouncing с помощью React Hooks: хук для функций

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

Здравствуйте! Меня зовут Игорь, я главный инженер по разработке в команде SmartData. Занимаюсь fullstack-разработкой внутренней аналитической BI-системы. В нашей компании React принят в качестве основного стандарта для построения пользовательских интерфейсов. Как и большая часть сообщества React, мы активно используем хуки в нашей повседневной работе.


Постоянное обучение — неотъемлемая часть работы любого хорошего разработчика. Поэтому сегодня мне хотелось бы внести свой скромный вклад в этот процесс и представить небольшое руководство для тех, кто начинает активно изучать React и работу с хуками. И попутно дать вам небольшой и полезный инструмент для работы с новым стандартом React.


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


Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии17

Истории

Борьба за производительность по-настоящему больших форм на React

Время на прочтение5 мин
Количество просмотров12K
На одном из проектов мы столкнулись с формами из нескольких десятков блоков, которые зависят друг от друга. Как обычно, мы не можем рассказать о задаче в деталях из-за NDA, но попробуем описать свой опыт “укрощения” производительности этих форм на абстрактном (даже немного не жизненном) примере. Расскажу, какие выводы мы сделали из проекта на React с Final-form.

image

Представьте, что форма позволяет вам получить заграничный паспорт нового образца, одновременно оформляя получение Шенгенской визы через посредника – визовый центр. Кажется, этот пример достаточно бюрократичен, чтобы продемонстрировать наши сложности.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии17

Повышаем квалификацию с лучшими инструментами для web-разработки на React

Время на прочтение6 мин
Количество просмотров19K
Вы можете стать более ценным специалистом, изучив лучшие инструменты для разработки веб-приложений на React.



Большинство резюме работодатель отклоняет, просто пробежав их по диагонали. Это немного обескураживает, правда? Так что очень важно, чтобы он сразу увидел нужные ему знания и навыки у вас. Сейчас подходящее время прокачаться, особенно если вам нечем похвастаться в своём резюме. Не нужно посещать университет, чтобы получить новые навыки: нужно просто идти в нужном направлении и не отклоняться от него.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии6

Типичные ошибки джунов, использующих React

Время на прочтение4 мин
Количество просмотров6.4K
Об основных ошибках junior-разработчиков, использующих React. На чем сыпятся джуны, и как с этим жить. Перевод статьи «Mistakes Junior React Developers Make» от специалиста Frontend практики «Рексофт».

Читать дальше →
Всего голосов 13: ↑7 и ↓6+1
Комментарии5

Todolist на React Hooks + TypeScript: от сборки до тестирования

Время на прочтение13 мин
Количество просмотров21K
Начиная с версии 16.9, в библиотеке React JS доступен новый функционал — хуки. Они дают возможность использовать состояние и другие функции React, освобождая от необходимости писать класс. Использование функциональных компонентов совместно с хуками позволяет разработать полноценное клиентское приложение.

Предлагаю рассмотреть создание версии Todolist приложения на React Hooks с использованием TypeScript.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии9

React-разработка: 6 путей к профессиональному росту

Время на прочтение7 мин
Количество просмотров21K
Последние полгода я наблюдал за развитием начинающих React-программистов. За это время они прошли просто невероятный путь. Скорость их обучения, их жажда знаний, их стремление к совершенству — всё это произвело на меня сильнейшее впечатление.

Как им это удалось? Как они превратились из тех, кто не может без посторонней помощи открыть PR, в тех, к кому обращаются за помощью другие? Что сделало людей, просящих советов, людьми, охотно дающих советы другим? Как ученики превратились в учителей?



Я задал им эти вопросы. Вот что они на них ответили.
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии10

SheetUI — сервис для перевода Google Spreadsheets в статику

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


Недавно в Show HN пришёл стартап SheetUI. Это сервис, который берёт вашу таблицу, парсит её и генерирует статическую страницу с набором карточек. У создателей большие амбиции, но пока что не реализовано много важных функций.
Всего голосов 26: ↑26 и ↓0+26
Комментарии2

Устройство ленивой загрузки в популярных фронтенд-фреймворках

Время на прочтение9 мин
Количество просмотров16K
Snail steampunk by Avi-li

Команда Mail.ru Cloud Solutions перевела статью о том, что означает ленивая загрузка в трех фронтенд-фреймворках: Angular, React и Vue.js. Далее текст от лица автора.

Один из моих любимых терминов на сегодняшний день — «ленивая загрузка». Честно говоря, когда несколько лет назад я его услышал, то улыбнулся. В этой статье рассмотрю, что именно означает этот термин применительно к трем наиболее часто используемым фронтенд-фреймворкам: Angular, React и Vue.js.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии3

«Сим-сим, откройся!»: доступ в ЦОД без бумажных журналов

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


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

Вход и выход


Доступ посетителей в коммерческий ЦОД – важный момент организации работы объекта. Политика безопасности дата-центра требует точного учета посещений и отслеживания динамики. 

Несколько лет назад мы в Linxdatacenter решили перевести полностью в цифровой вид всю статистику посещений нашего ЦОДа в Санкт-Петербурге. Мы отказались от традиционной регистрации доступа – а именно от заполнения журнала посещений, ведения бумажного архива и предъявления документов при каждом визите. 
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Redux store vs React state

Время на прочтение14 мин
Количество просмотров18K
Как спроектировать хранение данных в React-приложении? Где хранить данные приложения: в глобальном хранилище (Redux store) или в локальном хранилище (component state)?
Такие вопросы возникают у разработчиков, начинающих использовать библиотеку Redux, и даже у тех, кто ей активно пользуется.

Мы в BENOVATE за 5 лет разработки на React опробовали на практике различные подходы к построению архитектуры таких приложений. В статье рассмотрим возможные критерии для выбора места хранения данных в приложении.
Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии9

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

5 типичных ошибок при создании React компонентов (с хуками) в 2020 году

Время на прочтение8 мин
Количество просмотров17K
image

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


Оригинальный материал был написан немецким разработчиком Лоренцом Вайсом для личного блога, а позже собрал много позитивных отзывов на dev.to. Переведено командой Quarkly специально для комьюнити на Хабре.


Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии38

Native vs Flutter vs React Native: тестируем производительность в работе с UI-элементами

Время на прочтение5 мин
Количество просмотров23K
Давайте возьмём задачи разной сложности и сравним потребление памяти, FPS, загрузку CPU и GPU при работе мобильных приложений, созданных с помощью разных технологий.

Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии23

Прости, React, но я так больше не могу

Время на прочтение3 мин
Количество просмотров29K
Недавно мне попалась фраза «усталость от JavaScript», «JavaScript fatigue», и я мгновенно понял, что это — про меня.

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



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

Но я, почти всегда, ничем таким не занимался. Дело тут было в том, что React и JavaScript, если стремиться быть в курсе всего, что в этих сферах происходит, отнимают слишком много сил и времени. Иногда я по-настоящему опасался того, что мои знания и навыки могут устареть. Всё это оставляло мне очень мало времени на то, чтобы исследовать что-то новое.
Читать дальше →
Всего голосов 61: ↑42 и ↓19+23
Комментарии29

Как мы разработали интерактивную веб-схему для зрительных залов

Время на прочтение6 мин
Количество просмотров5.9K
Иногда в приложении надо показать модель помещения – допустим, кинотеатра или даже целого стадиона, если вы продаете билеты на концерт Metallica. Если в зале 50-100 тысяч мест, то для их вывода на экран нужно продумать плавный zoom, скроллинг и другие детали. Итак, главный вопрос – как показывать тысячи элементов на экране, чтобы это было удобно для пользователей?

Недавно мы писали о скроллинге диаграмм с помощью d3.js, а сейчас хотим поделиться другим кейсом. Рассказываем, как с помощью Canvas можно разработать интерактивную схему зала, которую просто встраивать в любые веб-приложения.

Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии4

Как управлять состоянием React приложения без сторонних библиотек

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

image


Реакт это все что вам нужно для управления состоянием вашего приложения.


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


Существует метод управления состоянием который лично я пытаюсь применять еще с тех пор как я начал использовать Реакт. И теперь, после релиза хуков (hooks) и улучшения контекстов (context), этот метод управления состояниями стало очень просто использовать.

Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии23

Реактивные веб-технологии излишне переоценены

Время на прочтение7 мин
Количество просмотров11K
Привет, Хабр!

Я еще помню времена, когда принудительное ООП было доминирующим паттерном. Сейчас это очевидно не так, и все современные ЯП предлагают намного больше парадигм. Однако в области веб-разработки тотально (и на мой взгляд неоправданно) доминирует реактивность, которая в свое время эффективно решила проблему несовершенного DOM API, попутно создав несколько архитектурных проблем вроде централизованного хранилища данных (что вообще-то нарушает принципы SOLID), или переусложненного механизма взаимодействия компонентов. В условиях современных WEB-стандартов, реактивность нуждается как минимум в некотором переосмыслении. Например, реактивная парадигма прекрасно выглядит, если наш стейт централизован (не случайно самый популярный стек это react / redux), а если он распределен по дереву компонентов (что архитектурно правильней), то зачастую нам нужно меньше реактивности, а больше аккуратной императивности.

Свои проекты я пишу на ванильных веб-компонентах, в стиле императивного ООП, с минимальным количеством библиотечного кода, и очень редко действительно скучаю по реактивности. Если бы чистая реактивность покрывала все потребности разработчика, не пришлось бы в каждом фрейморке создавать императивные лазейки, позволяющие модифицировать компонент вместо его пересоздания (рефы, неуправляемые формы, $parent и т.д.). А когда стоит задача получить экстремально-отзывчивое приложение, то волей-неволей приходится думать (и вручную контролировать) момент и способ обновления DOM, как собственно и сделано в большинстве хороших PWA (например Twitter) и не сделано в менее хороших PWA (например VK). Так, большие списки выгодней формировать методом insertAdjacentHTML(), который вполне способен работать с текстово-параметризуемыми веб-компонентами, но вряд-ли применим к управляемым компонентам, и таких примеров достаточно.
Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии108

Пример использования React Stockcharts для рисования графиков и графических элементов

Время на прочтение15 мин
Количество просмотров4.1K
В статье изложен материал практического использования React для решения задачи построения графиков на основе информации с финансовых рынков. Функционал графиков расширен элементами рисования и индикаторами, что позволяет дополнительно производить анализ при выборе торговой стратегии. Статья может заинтересовать frontend разработчиков, решающих задачи по графическому отображению данных.

image
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии2