일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 프리온보딩
- react localStorage
- array
- Redux
- 브라우저
- localstorage
- state
- 알고리즘
- 리액트
- 타입스크립트
- CORS
- 프로그래머스
- 컴포넌트
- til
- 비트 연산자
- Frontend
- 파이어베이스
- Component
- es6
- TypeScript
- Reducer
- JS
- v9
- axios
- 원티드
- 자바스크립트
- 프론트엔드
- react
- firebase
- JavaScript
- Today
- Total
도리쓰에러쓰
[TIL] 프리온보딩 8일차 - 220510 본문

1️⃣ 상태 관리 Tool :: Recoil
오늘 처음으로 상태 관리 Tool인 Recoil을 사용해봤다.
그동안 props로 전달하고 또 전달하는게 무의미하다고 생각했는데, react를 좀 더 공부하고 상태 관리 툴을 공부해보자고 한게 갑자기 사용하게 될 줄은 몰랐다.
나는 recoil 폴더 생성해서 폴더 안에 관리해주고 있는데 코드는 아래처럼 작성하였다.
export const moviePageState = atom<number>({
key: '#moviePageState',
default: 1
})
우선 key와 default를 작성해줘야 하는데 멘토님께서 key를 구분하기 위해 앞에 #을 넣는다고 하셔서
나도 따라 썼다..! 아직 key를 사용해본 적이 없어서 좋은지는 모르겠지만 확실히 구분이 갈 것 같다..
그리고 아래 코드처럼 작성하면 되는데 useState() hook과 똑같은 모양새이다.
const [page, setPage] = useRecoilState<number>(moviePageState)
오늘 수업을 듣다가 처음 발견한 useResetRecoilState() !
state의 기본값을 이렇게 깔끔하게 돌려주는게 좋아서 인상이 깊었다..
다음에 꼭 사용해봐야지..!
useResetRecoilState(state) | Recoil
이 hook 비동기 selector의 값을 읽기 위해 사용됩니다. 이 hook은 암묵적으로 주어진 상태에 컴포넌트를 구독합니다.
recoiljs.org
🔽 이 외에 Recoil에 대해 더 알고 싶다면 아래 사이트를 참고하는 것이 좋다.
Recoil 시작하기 | Recoil
React 애플리케이션 생성하기
recoiljs.org
2️⃣ 로딩될 때 사용하는 Suspense
이번에 API를 사용하면서 로딩될 때 사용될 화면이 필요했는데 Suspense를 활용하면 좋을 것 같다.
<Suspense fallback={<div>로딩중...</div>}>
<ProfilePage />
</Suspense>
3️⃣ react에서 라우터 사용 시 파라미터 정보를 가져올 수 있는 useParams()
아래와 같이 useParams() hook을 사용하면 params에 파라미터 정보가 저장된다.
const { params } = useParams();
4️⃣ <Link>와 <NavLink>
- <Link>와 <NavLink>의 차이점은 <NavLink>는 스타일링을 줄 수 있다는 점이다.
// <Link>
<Link to='/about'>About</Link>
// <NavLink>
<NavLink to='help' className={({ isActive }) => cs({ [styles.isActive] : isActive })}>
help
</NavLink>
5️⃣ 404 에러뜰 때 나오게 하는 <Route>
<Route path='*' element={<div>404</div>} />
📍 오늘의 코드 리뷰 ( ZOOM : 7시 20분 경 확인 가능 )
- any 금지 ! (any쓰면 에러 해결이 되길래 써도 되는 줄 알았더니 좋지 않은 습관인 것 같다.)
- eslint 켜기 ! (띄어쓰기가 왜.. 이상하게.. 어서 eslint 설치하자..)
💡 오늘의 작지만 알찬 꿀팁
- import는 절대경로로 작성하기
- readme 작성하면서 코드짜기
- npm camelCase (https://www.npmjs.com/package/camelcase)
- 디바운싱 : 시간이 많이 걸리는 작업이 자주 실행되지 않도록 하는 방법 (300 추천)
'Project > 원티드 프리온보딩 프론트엔드 코스' 카테고리의 다른 글
[TIL] 프리온보딩 10일차 - 220512 (0) | 2022.05.13 |
---|---|
[TIL] 프리온보딩 9일차 - 220511 (0) | 2022.05.12 |
[TIL] 프리온보딩 7일차 - 220509 (0) | 2022.05.10 |
[TIL] 프리온보딩 6일차 - 220508 (0) | 2022.05.09 |
[TIL] 프리온보딩 5일차 - 220507 (0) | 2022.05.09 |