소주제 : 컴포넌트와 graphql의 실체 & global state
1. props, data, prev의 실체 파악하기
- 아래의 함수형 컴포넌트 불러오는 방식을 함수 자체를 불러오는 방식으로 변경해 보세요.
// container 부분
export default function Container() {
return (
<>
<Presenter child="철수" />
</>
);
}
// presenter 부분
export default function Presenter(props) {
return <div>{props.child}</div>;
}
- 아래의 함수형 컴포넌트 불러오는 방식을 함수 자체를 불러오는 방식으로 변경해 보세요.
// container 부분
export default function Container() {
return (
<>
<Presenter child="철수" age={13} />
</>
);
}
// presenter 부분
export default function Presenter(props) {
return <div>{props.child}는 {props.age}살 입니다.</div>;
}
- 아래의 코드가 정상적으로 작동하지 않습니다. 제대로 작동하도록 만들어 보세요.
["철수", "영희", "훈이", "맹구"].map((index) => {
console.log(`영희는 ${index}번째 칸에 들어있습니다.`)
})
- 아래의 코드가 정상적으로 작동하지 않습니다. 제대로 작동하도록 만들어 보세요.
단, qwer은 변경하지 않습니다.
const [state, setState] = useState(0)
setState(qwer => prev + 1)
2. Recoil 적용하기
- pages/21/recoil/new 페이지, pages/21/recoil/edit 페이지, /src/commponents/unit/example/write 컴포넌트를 각각 만들어 줍니다.
- new 페이지와 edit 페이지에서 write 컴포넌트를 불러와서 연결해 줍니다.
- edit 페이지에서 write 컴포넌트를 불러올 때 props로 isEdit={true}를 넘겨줍니다.
- write 컴포넌트에서는 props로 받은 isEdit으로 3항 연산자를 사용하여 "등록하기" 또는 "수정하기"를 화면에 보여줍니다. <h1 />태그를 사용하세요.
- new 페이지에 접속하면 "등록하기", edit 페이지에 접속하면 "수정하기"가 나오는지 확인해 주세요.