⭐️ Redux? Recoil?
Recoil에 대해 설명하기 전, 나는 Redux를 사용했던 경험이 있다.
Redux가 React 상태관리 라이브러리 중 가장 유명하다 생각했고 다른 사람들이 많이 사용하는데 이유가 있겠지! 싶어서 사용했었다.
처음 사용해보니 초기세팅하기 위해 공부가 어려웠다..
그 후, 사이드 프로젝트를 진행하게 되었는데 Recoil에 대해 알게되었다.
더 간단하고 소규모 프로젝트에는 Recoil이 적합하다는 이야기를 듣고 Recoil을 사용하기로 결심했다!
그리고 페이스북에서 만들어서 리액트와 호환성도 좋다고 한다.
⭐️ Recoil 설치
npm install recoil
or
yarn add recoil
위의 명령어로 설치하고
루트 컴포넌트를 RecoilRoot로 감싸주면 사용할 준비 끝!
import React from 'react';
import { RecoilRoot } from 'recoil';
function App() {
return (
<RecoilRoot>
<App />
<RecoilRoot />
);
}
⭐️ atom
- atom은 Recoil에서 상태를 정의하고 유지하는 기본 단위
- key 값과 default 값을 무조건 가져야 함
- key 값 고유한 식별자가 와야 함
- default 값으로 초기값을 지정해줘야 함(지정하지 않으면 'undefined')
- atom 값을 읽는 컴포넌트들은 암묵적으로 atom을 구독하는데, atom에 변화가 생기면 그 atom을 구독하는 모든 컴포넌트가 상태를 공유하기 때문에 리렌더링 됨!
import { atom } from 'recoil';
export const countState = atom({
key: "countState", //고유한 식별자
default: 0, //기본 값
});
위처럼 key 값과 default 값을 atom으로 감싸서 선언해준다.
const [count, setCount] = useRecoilState(countState); //useReocilState(키 값)
우리가 자주쓰는 useState처럼 가져와서 사용하면 돼서 편리하다.
useState와 다른 점은 count가 전역상태라는 것!!
⭐️ hook 함수들
위에서 잠깐 나왔던 useRecoilState()도 hook 함수 중 하나이다.
hook 함수들에 대해 살펴보자.
- useRecoilState : useState처럼 값과 값을 변경하는 함수를 반환한다.
- useRecoilValue : 값만 반환한다. 값을 update 할 수 없다.
- useSetRecoilState : 값을 변경하는 함수만 반환한다.
- useResetRecoilState : 값을 atom에서 설정했던 기본 값으로 reset하는 함수를 반환한다.
이외에도 selector라는 중요한 개념도 있는데 이 내용은 조만간 따로 정리해야겠다.
직접 사용해보면서 장점과 단점을 깨달아봐야겠당..!아무리 개념 공부 많이 해봤자 사용못하면 말짱도루묵,,
'React' 카테고리의 다른 글
[React]onFocus, onBlur (0) | 2024.04.17 |
---|---|
[React]React 프로젝트 폰트 변경하기(눈누) (0) | 2024.03.30 |
[React]Tailwind CSS 설치하기 (0) | 2024.03.27 |
[React]react-hook-form로 회원가입 구현 (1) | 2024.03.07 |
[React]Redux-Logger (0) | 2024.02.08 |