-
[2023년 목표] 리액트 마스터🔥프론트엔드 개발자가 될거야./react 2023. 1. 2. 22:37
2023년에는 react, typeScript, react-query, recoil, next.js 마스터가 2023년 목표이다.
프론트엔드 신이 되고싶다!! 나능 할 수 있다 !!!
그 첫 게시물로 노마드코더 리액트 마스터 강의를 들으며 알게된 간단한 react tip(?)을 정리했다.
1. return없이 map쓰기, 2. →는 오른쪽 화살표
{coins.map((coin) => ( <Coin key={coin.id}> <Link to={`/${coin.id}`}>{coin.name} →</Link> </Coin> ))}
2. Link를 통해 다른 화면에 정보 보내기
화면 이동할 때 데이터를 보낸다는 것은
parameter를 이용해서 URL에게 정보를 넘기는 것이다.
이런 방식으로 한 화면에서 다른 화면으로 정보를 받아올 수 있다.
<Link to={`/${coin.id}`} state={coin}>
Link 방식으로 했을 때 누군가가 페이지에 바로 접속하려고(URL을 치고 들어오려고하면) 한다면 에러가 난다. (시크릿모드)
왜냐하면 state가 생성되려면 Home화면을 먼저 열어야 하기 때문이다. (클릭할 때 state가 만들어지기 때문에)
이것을 해결하기 위해서 물음표 해주면 된다.
function Coin() { const [loading, setLoading] = useState(true); const { state } = useLocation() as LocationState; return ( <Container> <Header> <Title>{state?.name || "Loading..."}</Title> // state가 존재하면 name을 가져오고 없으면 Loading을 보여줘라. </Header> {loading ? <Loader>Loading...</Loader> : null} </Container> ); }
3. useEffect 즉시 실행 함수
useEffect(() => { (async () => { const response = await fetch("https://api.coinpaprika.com/v1/coins"); const json = await response.json(); })(); }, []);
4. 변수 캡슐화 : 변수 2개 합치기
// 기존 (async () => { const response = await fetch( `https://api.coinpaprika.com/v1/coins/${coinId}` ); const json = await response.json(); })(); //수정 후 (async () => { const response = await ( await fetch(`https://api.coinpaprika.com/v1/coins/${coinId}`) ).json();
'프론트엔드 개발자가 될거야. > react' 카테고리의 다른 글
[react-query] 어드민 페이지 조회기능 react-query 도입하기 (0) 2023.01.24 [axios] fetch 대신 axios 사용하기, 내가 경험한 트러블슈팅 (0) 2023.01.15 [1인 헤어샵 예약 시스템 구현기] firebase로 실시간 예약 시스템 구현하기 (0) 2022.10.28 [1인 헤어샵 예약 시스템 구현기] 초기세팅과 firebase (기술스택: react, ts, redux-toolkit, styled-component + firebase) (0) 2022.10.21 [컴포넌트 최적화] React.memo, useMemo, useCallback의 차이점과 활용 (1) 2022.09.26