Почему useEffect on [] вызывается при горячей перезагрузке?Javascript

Форум по Javascript
Anonymous
Почему useEffect on [] вызывается при горячей перезагрузке?

Сообщение Anonymous »

app/page.tsx

Код: Выделить всё

"use client";

import { useEffect, useRef } from "react";
import { foo } from "./OrdersModuleFoo";
import React from "react";
const OrdersModule: React.FC = () => {
const firstRun = useRef();
useEffect(() => {
console.log("Fetching orders in OrdersModule...", firstRun.current);
firstRun.current = true;
}, []);
console.log("Rendering OrdersModule");
console.log("Foo is ", foo);
return OrdersModule Component test;
};
const OrdersModuleMemo = React.memo(OrdersModule);
export default function Home() {
return ;
}
app/OrdersModuleFoo.tsx

Код: Выделить всё

export let foo = {
bar: 123351354,
};
let foz = {
bar: 15253775, // update this
};
Когда я обновляю foz.bar и сохраняю файл, происходит горячая перезагрузка приложения next.JS. К моему удивлению, «Извлечение заказов в OrdersModule... true» всегда печатается при горячей перезагрузке. Для меня это не имеет смысла, поскольку я думал, что useEffect для пустого [] вызывается только один раз при первой сборке компонентов.
Почему он это делает? Я ожидаю, что мой it вообще не будет перерисовываться, поскольку 1) я использую React.memo, 2) без реквизита OrdersModule 3) foz даже не экспортируется.

Подробнее здесь: https://stackoverflow.com/questions/797 ... hot-reload

Вернуться в «Javascript»