memo() helps prevent unnecessary renders.
const A = memo(function A({ children }) {console.log("A");return children;});const B = memo(function B() {console.log("B");return null;});function App() {const [count, setCount] = useState(0);const increment = () => setCount((count) => count + 1);return (<div><button onClick={increment} data-testid="button">click me</button><A><B /></A></div>);}const root = createRoot(document.getElementById("root"));root.render(<App />);setTimeout(() => {fireEvent.click(document.querySelector('[data-testid="button"]'));Click the button}, 100);
const A = memo(function A({ children }) {console.log("A");return children;});const B = memo(function B() {console.log("B");return null;});function App() {const [count, setCount] = useState(0);const increment = () => setCount((count) => count + 1);return (<div><button onClick={increment} data-testid="button">click me</button><A><B /></A></div>);}const root = createRoot(document.getElementById("root"));root.render(<App />);setTimeout(() => {fireEvent.click(document.querySelector('[data-testid="button"]'));Click the button}, 100);
click on the console.log lines to input your answer.