Pull to refresh
11
7
Дмитрий @4Nun4ku

User

Send message

MutationObserver + React: меняем ошибки UI Kit без патча библиотеки

Level of difficultyMedium
Reading time6 min
Views1.6K

Привет, на связи снова я – React-разработчик Дмитрий. Сегодня отвлечемся от теории и разберем конкретный случай и какое решение для него использовалось.

При работе с готовыми UI-библиотеками часто возникает небольшая проблема —  компонент хорош, но его поведение нельзя настроить под требования конкретного случая. Я столкнулся с этим на практике, когда в используемой версии UI Kit не было возможности кастомизировать тексты выводимых ошибок, а бизнес-требования четко задали формулировки.

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

Собственно, выглядит компонент загрузки файла вот так:

Читать далее

Web Workers и React: как разгрузить UI и ускорить приложение

Level of difficultyMedium
Reading time9 min
Views7K

Всем, привет, меня зовут Дмитрий, я React-разработчик, и я снова здесь и попробую сегодня рассказать про Web Workers.

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

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

В современном фронтенде отзывчивость интерфейса — требование по умолчанию. Пользователи ожидают, что ваше приложение будет мгновенно реагировать на действия, даже если оно выполняет тяжёлые вычисления или загружает большие объёмы данных.

В этой статье мы разберём, как можно решить эту проблему одним из вариантов — с помощью Web Workers.

Читать далее

Среда выполнения JavaScript простым языком: движок, Event Loop и очереди задач

Level of difficultyEasy
Reading time12 min
Views9.7K

Привет, с вами снова я – Дмитрий, React-разработчик, хотелось бы сегодня затронуть тему среды выполнения JS. Многие знают, другие уже подзабыли, а новички — вовсе не в курсе. В общем, эта статья точно найдёт своих читателей. Постараюсь простыми словами и по делу.

Читать далее

Reconciliation в React, обновления виртуального DOM: что это и как работает под капотом простыми словами

Level of difficultyMedium
Reading time7 min
Views5.9K

Привет, меня зовут Дмитрий, я React-разработчик и в статье хочу снова рассмотреть тему, которая у всех на слуху, однако «подкапотной» информации по ней не так много. Всем известно, что React обновляет компоненты, когда это необходимо, но как это происходит на самом деле, «под капотом»? Давайте разберемся вместе — что мне удалось узнать.

Читать далее

Как MobX делает объекты реактивными с помощью Proxy

Level of difficultyEasy
Reading time5 min
Views2.8K

Привет! На связи снова Дмитрий — React-разработчик, который стремится разобраться, как всё устроено, и делится информацией с вами.

В прошлой статье мы подробно разобрали, что такое Proxy и как он работает, поэтому повторяться не будем. Сегодня поговорим о том, как MobX использует Proxy, создавая свою "реактивную магию".

Как MobX делает объекты реактивными?

MobX превращает обычные объекты JavaScript в реактивные, что позволяет автоматически отслеживать изменения их свойств и обновлять зависимости. В основе этого механизма лежат два ключевых инструмента: makeAutoObservable и observable. 

Читать далее

Использование Proxy и Reflect для создания реактивных объектов в JavaScript

Level of difficultyEasy
Reading time10 min
Views3K

Привет, на связи снова Дмитрий, React-разработчик, и сегодня захотелось написать про Proxy и Reflect.

Что такое Proxy в JavaScript?

Proxy — это встроенный объект в JavaScript, который позволяет создавать обертки для объектов и перехватывать стандартные операции с ними, такие как: доступ к свойствам, их изменение, удаление и другие. Это мощный инструмент, который можно использовать для реализации различных паттернов, например, для создания реактивных объектов, создания ленивая инициализации свойств, проверки прав доступа и выполнения других задач.

Читать далее

LocaleCompare в JavaScript: правильная и удобная сортировка строк с учетом языка

Level of difficultyEasy
Reading time7 min
Views3.2K

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

Читать далее

Что происходит, когда вы вводите адрес сайта и нажимаете Enter?

Level of difficultyMedium
Reading time8 min
Views35K

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

На собеседованиях я иногда задаю один, казалось бы, простой вопрос: «Что происходит после того, как вы вводите URL сайта в адресную строку браузера и нажимаете Enter?» Этот вопрос подходит как для Junior, так и для Middle-разработчиков, а иногда и для Senior, потому что, несмотря на его фундаментальность, в нем многие ошибаются или не могут дать точного ответа.

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

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

Читать далее

Отладка и мониторинг в MobX: trace, introspection и spy

Level of difficultyMedium
Reading time13 min
Views2.2K

Привет, меня зовут Дмитрий, я Middle-React-разработчик с замашками сеньора, поднимающийся с самых низов без мам, пап и ипотек. В последнее время я частенько вижу ситуацию: при использовании MobX в больших проектах у людей появляются сложности с количеством перерисовок или наоборот не обновлением данных со стора. Также могут проявляться проблемы с производительностью в том числе и из-за этого. Я решил поделиться отладочными инструментами MobX, ведь это может кому пригодиться.

Читать далее

Information

Rating
816-th
Location
Россия
Registered
Activity

Specialization

Frontend Developer, Mobile Application Developer
Senior
JavaScript
HTML
React
MobX
Jest
CSS
Node.js
Web development
TypeScript
React Native