728x90
1. props에 넣을 수 있는 것들
- true, false, string, function 등
2. btn을 렌더링하는 컴포넌트가 어떻게 되는지 알아보기
- 버튼에 onClick을 넣고 이 함수는 App 컴포넌트에 있는 state를 바꾸도록 해 보기
function App() {
const [value, setValue] = React.useState("Save changes");
const changeValue = () => setValue("Revert changes");
return (
<div>
<Btn text={value} onClick={changeValue} />
<Btn text="Continue" />
</div>
);
}
- onClick={chagneValue} 는 이벤트 리스너가 아닌 컴포넌트에(Btn)으로 들어가는 prop이다.
이벤트리스너는 HTML 요소에다가 넣는 것
컴포넌트에 onClick을 넣는경우 아래와같이 손수 전달 해 줘야함
function Btn({ text, changeValue }) {
return (
<button
onClick={changeValue}
style={{
backgroundColor: "tomato",
color: "white",
padding: "10px 20px",
border: 0,
borderRadius: 10,
fontSize: 16,
}}
>
{text}
</button>
);
}
function App() {
const [value, setValue] = React.useState("Save changes");
const changeValue = () => setValue("Revert changes");
return (
<div>
<Btn text={value} changeValue={changeValue} />
<Btn text="Continue" />
</div>
);
}
- 부모의 상태를 바꾸는 함수로인해 부모 컴포넌트에서 그 함수는 prop으로 보내면 자식 컴포넌트에서 그 함수가 실행 된다.
3. 어플리케이션을 최적화 시키기 (Memo)
- 컴포넌트가 다시 그려지지 않기를 원한다고 Memo를 할 수 있다.
(불빌요한 Rerender 제거하고 변경이 일어난 부분만 렌더링 시킬 수 있다.)
const MemorizedBtn = React.memo(Btn);
function App() {
const [value, setValue] = React.useState("Save changes");
const changeValue = () => setValue("Revert changes");
return (
<div>
<MemorizedBtn text={value} changeValue={changeValue} />
<MemorizedBtn text="Continue" />
</div>
);
}
728x90
'React > 영화웹서비스만들기' 카테고리의 다른 글
Create React App (0) | 2024.04.16 |
---|---|
Prop Types 설정하기, 필수 값 지정하기 (0) | 2024.04.12 |
Props 을 이용해 데이터를 부모 컴포넌트에서 자식 컴포넌트로 보내기 (0) | 2024.04.11 |
select 메뉴를 추가하여 리스닝 해 주기 (0) | 2024.04.11 |
단위 변환을 뒤집는 함수 만들기 (0) | 2024.04.11 |