Як ви знаєте, в #React функціональні компоненти рендеряться заново, в тому числі, коли рендериться їх батьківський компонент (якщо не використовувати
React.memo)Тепер власне тест:
Маємо звичайний, майже класичний React counter:
function Counter({ children }) {
const [c, setCounter] = useState(0);
const increment = () => setCounter(c + 1);
return (
<button onClick={increment}>
{children} {c}
</button>
);
}Єдиний нюанс з ним - він приймає в пропс children, який відмальовує всередині. В середину ми передаємо отакий примітивний компонент:
function ClickMeText() {
console.log('ClickMeText rendered');
return <>Clicked: </>;
}Цей компонент - просто текст, який також містить консоль лог, щоб ми бачили коли він рендериться. В цілому виглядає це так:
const App = () => <Counter>
<ClickMeText />
</Counter>
Тепер питання: Я запустив сторінку та ТРИЧІ клікнув на каунтер. Скільки
ClickMeText rendered я побачу в консолі, за умови що strict mode вимкнено? 1 раз - ставимо ❤️
3 рази - 👍
4 рази - 🔥
З вас смайлики, з мене пояснення)