Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Купить рекламу: https://telega.in/c/sWebDev
Post #3628
1.09K
FR @swebdev
Showing posts older than #3629 · Back to latest




flushSync() немедленно обновляет состояние и ререндерит компонент, обходя пакетирование. Это полезно, когда нужно сразу отобразить изменения перед выполнением других операций, например, измерения размеров DOM-элемента. import { useState, useRef } 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 обновится сразу после изменения текста. 

resolveForwardRef() при передаче ему объекта?

captureOwnerStack, который помогает разрабатывать более удобные ошибки. Он позволяет получить стек владельцев (Owner Stack) — список компонентов, через которые передаётся проп. Это полезно, если нужно быстро понять, какой компонент несёт ответственность за данные в сложной структуре. Работает только в режиме разработки и может измениться в будущих версиях. Если ваш код ломается, а виновника не найти, этот API поможет разобраться. 

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 обновится после изменения текста, а не после следующего рендера. 