У меня есть код ниже, который имеет две кнопки. Один создает 10000 делений, другой удаляет их. Если вы многократно создаете и удаляете профиль производительности, то в результате в профиле останется более 30 000 узлов, иногда более 90 000.
Возвращается к начальному количеству узлов (52), только если вы нажмете кнопку принудительного сбора мусора в chrome перед завершением отчета о производительности. Почему?
import React, { useState } from "react";
import "./styles.css";
const App = () => {
const [items, setItems] = useState([null]);
const createMoreItems = () => {
setItems([...Array(10000).keys()]);
};
const removeDivs = () => {
setItems([null]);
};
return (
<div>
<button onMouseDown={() => createMoreItems()}>Create 10000 divs</button>
<button onMouseDown={() => removeDivs()}>Remove</button>
{items.map(index => {
return <div>{index} item</div>;
})}
</div>
);
};
export default App;