Written on
·
277
1
import React, { createContext, useState, useContext } from "react";
const UserConText = createContext({ username: "unknown", age: 0 });
export default function App() {
const [user, setUser] = useState({ username: "마이크", age: 23 });
const [count, setCount] = useState(0);
console.log("App render");
return (
<div>
<UserConText.Provider value={user}>
<Profile />
<button onClick={() => setCount(count + 1)}>증가</button>
</UserConText.Provider>
</div>
);
}
const Profile = React.memo(function () {
console.log("Profile render");
return (
<div>
<Greeting />
</div>
);
});
function Greeting() {
console.log("Greeting render");
const { username } = useContext(UserConText);
return <p>{`${username}님 안녕하세요`}</p>;
}
Answer 3
1
1
안녕하세요
혹시 create-react-app 인가요?
맞다면 index.js 쪽을 보면 아마 StrictMode 컴포넌트가 있을거에요
StrictMode 를 지우고 해보시겠어요?
참고로 StrictMode 가 있으면 concurrent mode 대응을 위해 리액트가 고의로 두 번씩 렌더링 합니다
1