Я использую функциональный компонент под названием HelloWorld
, находящийся в файле HelloWorld.js
. Допустим, я хочу отслеживать положение мыши без повторного запуска рендеринга.
Как новичок, я знаю два варианта:
let mousePosition = null;
const HelloWorld = () => {
// ...
mousePosition = aNewPosition;
const handlerReadingPosition = () => {
console.log(mousePosition)
}
}
и
const HelloWorld = () => {
const mousePositionRef = useRef(null);
// ...
mousePositionRef.current = aNewPosition;
const handlerReadingPosition = () => {
console.log(mousePositionRef.current)
}
}
Эквивалентны ли эти два блока кодов? Если я объявлю переменную в HelloWorld, она будет стираться при каждом рендеринге, отсюда useRef
.
Есть ли какое-то «правило» для объявления переменных внутри HelloWorld
, а не непосредственно перед этим?