Обработка ошибок в Express
- Перевод
В этой серии статей мы пройдем полный цикл создания клиентской части приложения и напишем небольшую библиотеку компонентов с использованием современного стека технологий.
ПАЛИНДРО́МОдна из возможных реализаций данной задачи могла бы выглядеть так:
Мужской родСПЕЦИАЛЬНОЕ
Слово или фраза, которые одинаково читаются слева направо и справа налево.
«П. «Я иду с мечем судия»»
function getPalindrom (str) {
const regexp = /[\.,\/#!$%\^&\*;:{}=\-_`~()?\s]/g;
str = str.replace(regexp, '').toLowerCase().split('').reverse().join('');
//далее какой-то аякс запрос в словарь или к логике, которая генерирует фразы по переданным буквам
return str;
}
function isPalindrom (str) {
const regexp = /[\.,\/#!$%\^&\*;:{}=\-_`~()?\s]/g;
str = str.replace(regexp, '').toLowerCase();
return str === str.split('').reverse().join('');
}
Эта статья основана на моём выступлении на конференции ITSubbotnik, прошедшем 2 ноября 2019 года в Москве.
Вообще я бэкенд программист, но меня заинтересовала эта технология, она позволяет использовать мои знания бэкенда на фронте.
Начнём с проблемы, которая решается этой (относительно новой) технологией. Проблема эта — быстро исполнять код в браузере. Быстро — это значит, «быстрее чем JavaScript», в идеале настолько быстро, насколько позволяет имеющийся у нас процессор.
transition
) свойства height
от 0px
до auto
. max-height
и на javascript. Реализация на javascript была исключена — есть же css с поддержкой переходов и анимаций. Остался max-height
, тем более в примерах с выпадающими меню всё работает. Сейчас я покажу вам как можно сделать чат для команды/пользователей/друзей если у вас нет своего бэкенда или вы не хотите тратить время на его разработку. Мы сделаем простой текстовый чат и на это у нас уйдет около часа.
Написать работающий сетевой чат без бэкенда практически невозможно, он обязательно должен быть в том или ином виде. Мы будем использовать Chatix и его JavaScript SDK. Chatix и SDK будут заниматься хранением сообщений и сетевыми задачами, а мы займемся фронтендом.
async
. Для создания интерфейсов React рекомендует использовать композицию и библиотеки по управлению состоянием (state management libraries) для построения иерархий компонентов. Однако при сложных паттернах композиции появляются проблемы:
Для большинства разработчиков проблема может быть неочевидна, и они перекидывают ее на уровень управления состоянием. Это обсуждается и в документации React: