Size: a a a

JavaScript.Ninja

2021 November 03

ТА

Тимур А in JavaScript.Ninja
Потому что сравнение новых пропсов с предыдущим значением пропсов может стоить дороже перерисовки DOM, насколько я понимаю
источник

YG

Yan Guly in JavaScript.Ninja
Мне из моей практики показалось, что все наоборот
Хорошо верстать умеют считанные единицы
источник

M

Maksym in JavaScript.Ninja
input.setRangeText('tag', input.selectionStart, input.selectionEnd, "end");
Я могу таким методом вставить не просто текст, а обернуть его в тег span например?:
источник

M

Maksym in JavaScript.Ninja
а то я пробовал создать createElement, но не могу вставить
источник

KR

Kirill Romanov in JavaScript.Ninja
в инпут ты не можешь вставлять теги
источник

БЕ

Бауыржан Есетов... in JavaScript.Ninja
Но в примере самые простые компоненты.
источник

БЕ

Бауыржан Есетов... in JavaScript.Ninja
я просто не могу понять, этот механизм и React.memo это разные вещи?
источник

ТА

Тимур А in JavaScript.Ninja
https://youtube.com/playlist?list=PLz_dGYmQRrr-g02jHDzuu-6VlOt8-8Uu5
Сам только начал разбираться, этот парень вроде толковыый
источник

VK

Vladimir Klimov in JavaScript.Ninja
react memo - это просто мемоизация компонента на основании пропсов
Одинаковые пропсы - не запускаем ререндер
Реконсилинг даже не начинается
источник

БЕ

Бауыржан Есетов... in JavaScript.Ninja
Допустим мемоизация решает проблему до реконсилинг. Но почему без мемоизации базовый механизм допускает ререндер компонента где физический ничего не поменялся. Или рендер происходить там где есть события не зная результат?
источник

БЕ

Бауыржан Есетов... in JavaScript.Ninja
Спасибо, гляну, я тоже смотрю видео где объясняют useMemo но никто не обясняет, почему изначально события одного компонента влияет на другие компоненты, хотя там разные стэйты
источник

VK

Vladimir Klimov in JavaScript.Ninja
При изменении стейта компонента, реакт запускает ререндер для всего дерева его дочерних компонентов безусловно
Запускается реконсилинг (пересчет виртуального представления дома), а потом уже эффективно меняется реальный дом
источник

WK

Waldemar Kunz in JavaScript.Ninja
Буду очень благодарен, если кто может разобраться в следуещем. Нужен надежный способ определения того, находится ли  мобильное устройство онлайн (Сhrome, Webview). При этом оно может быть только в wifi сети. Я думал, что достаточно отслеживать события "offline" и "online", но это не срабатывает, если пользователь отдаляется далеко от wifi routera. Было бы очень интересно понять на низком уровне, что в таком случае происходит и почему событие "offline" не диспатчится? И получается остается только вариант делать регулярные (например каждые 5 секунд) запросы (например пустой текстовый файл в assets для этого положить), но как огородить себя от того, что он закешируется где нибудь? Или может лучше делать запросы на backendUrl/рандомное число - т.е. по заведомо не существуещей ссылке и если вернется 404 - то онлайн?
источник

VK

Vladimir Klimov in JavaScript.Ninja
Так по-умолчанию работает реакт.
Функция рендера компонента будет вызвана заново при изменении состояния родителя независимо от передаваемых пропсов
источник

БЕ

Бауыржан Есетов... in JavaScript.Ninja
Получается то что говорят, вот происходить 100500 рендеров без useMemo это на уровне Virtual DOM?
источник

VK

Vladimir Klimov in JavaScript.Ninja
Под ререндером имеется ввиду изменения Virtual DOM, да
То есть накладные расходы на вызов вашего компонента как функции (computations)
Для реакта это нормально в большинстве случаев.
Оптимизировать работу с реальным домом в реакте вы не можете и не должны (не имеет смысла).
источник

БЕ

Бауыржан Есетов... in JavaScript.Ninja
Спасибо, вот это я хотел и услышать
источник

БЕ

Бауыржан Есетов... in JavaScript.Ninja
к стати, тут не дочерние компоненты, они на одном уровне
источник

V

Vladimir in JavaScript.Ninja
что значит на одном?
источник

ТА

Тимур А in JavaScript.Ninja
У них обоих изменяются пропсы
источник