tg-me.com/sWebDev/3608
Last Update:
Управление асинхронным рендерингом
Метод flushSync()
позволяет немедленно обновить состояние и выполнить ререндер, обходя пакетную обработку обновлений. Это полезно, когда требуется мгновенно обновить интерфейс перед выполнением других операций, например, чтением размеров DOM.
Например, кнопка изменяет текст элемента, и нам нужно получить его новую ширину до следующего рендера:
import { useState } from "react";
import { flushSync } from "react-dom";
function Example() {
const [text, setText] = useState("Нажми меня");
const spanRef = useRef(null);
function handleClick() {
flushSync(() => {
setText("Текст изменился!");
});
console.log("Ширина:", spanRef.current.offsetWidth);
}
return (
<div>
<button onClick={handleClick}>Изменить</button>
<span ref={spanRef}>{text}</span>
</div>
);
}
flushSync()
гарантирует, что offsetWidth
обновится после изменения текста, а не после следующего рендера. 👉 @sWebDev
BY Frontender Libs - обзор библиотек JS / CSS

Share with your friend now:
tg-me.com/sWebDev/3608