Size: a a a

JavaScript.Ninja

2021 November 29

KR

Kirill Romanov in JavaScript.Ninja
сделай юнион из строк вместо енама
источник

N

Nikita in JavaScript.Ninja
но чтоб везде где я вызываю его не импортировать енам
источник

N

Nikita in JavaScript.Ninja
ну вот видимо так и сделаю
источник

N

Nikita in JavaScript.Ninja
не хотелось свитч строками писать
источник

DS

Dima Satsukevich in JavaScript.Ninja
Всем привет, кто может имеет предположения отчего возникает следующая проблема: Есть файл с запросами к апи, который не нужно включать в отчет по тестам, в начале он был написан с использованием fetch, и в начале файла был комментарий /* istanbul ignore file */. И он не включался в отчет. Потом файл был переписан с использованием axios, и теперь он включается в отчет, хотя комментарий остался
источник

DS

Dima Satsukevich in JavaScript.Ninja
Поправляю, нашел в чем проблема, так же я перенес enum с urlами в этот файл, и в нем проблема, потому что если я его переношу в отдельный файл и импортирую, то файл игнорируется в отчете, а если enum внутри файла, то файл попадает в отчет
источник

МУ

Максим Усачёв... in JavaScript.Ninja
Ребята, читаю вот эту статью и возникли вопросы: https://thoughtspile.github.io/2021/11/15/unintentional-layout-effect/

Although useEffect is deferred until after the browser has painted, it’s guaranteed to fire before any new renders. React will always flush a previous render’s effects before starting a new update.


Объясните, плз, что значит этот абзац? Я всегда думал, что useEffect запускается только после стадии paint, когда браузер уже отрисовал результат. А что тогда имеется ввиду вот в этом абзаце?
источник

👀Ш

👀 Дима Шаповалов... in JavaScript.Ninja
Я реакт не шарю, но написано примерно так

хотя useEffect откладывается до тех пока браузер не совершит отрисовку, он гарантированно выполнится раньше, чем любые новые рендеры
источник

👀Ш

👀 Дима Шаповалов... in JavaScript.Ninja
то есть paint => useEffect => any new renders
источник

DZ

D Z in JavaScript.Ninja
Речь идет про колбэк, что мы возвращаем в useEffect. Он будет вызван всегда до того, как начнется новый апдейт.
источник

МУ

Максим Усачёв... in JavaScript.Ninja
Имеется ввиду фунция cleanup, которая возвращается из useEffect (useEffect(() => () => …);)?
источник

DZ

D Z in JavaScript.Ninja
Да
источник

МУ

Максим Усачёв... in JavaScript.Ninja
А почему в статье это не указано? Такое впечатление. что в статье речь идёт про саму функцию внутри useEffect. То есть первую скобочку, так сказать useEffect(() => () => …);?
источник

МУ

Максим Усачёв... in JavaScript.Ninja
функция, которая вызывается, когда, к примеру, изменились зависимости в массиве useEffect
источник

МУ

Максим Усачёв... in JavaScript.Ninja
И ещё вопрос. А что значит « React will always flush a previous render’s effects before starting a new update.»? Что значит «сбрасывает»?
источник

АЗ

Андрей Звёздочка... in JavaScript.Ninja
Вызывают return callback
источник

МУ

Максим Усачёв... in JavaScript.Ninja
Ок, а что в этом страшного? ведь это же просто сбрасывает те вещи, которые. находятся в этом коллбеке?
источник

МУ

Максим Усачёв... in JavaScript.Ninja
К примеру, оброботчики событий на элементе
источник

АЗ

Андрей Звёздочка... in JavaScript.Ninja
Ничего страшного
источник

МУ

Максим Усачёв... in JavaScript.Ninja
Андей, давайте всё же уточним. Я правильно вас понял, что в статье речь идёт имеено про return callback?

React update 1: render virtual DOM, schedule effects, update DOM
Call useLayoutEffect
Update state, schedule re-render
Call useEffect
React update 2
Call useLayoutEffect from update 2
React releases control, browser paints the new DOM
Call useEffect from update 2

https://thoughtspile.github.io/2021/11/15/unintentional-layout-effect/
То есть тут вызов Call useEffect означает именно вызов return callback, Так?
источник