상태 관리 라이브러리 Recoil을 React-Native 에서 사용해 보겠습니다.
Atom
관리의 대상이 되는 상태 단위입니다. 한 가지의 변수 뿐만 아니라 배열, Object 등 다양한 종류의 자료 구조 또한 Atom이 될 수 있습니다.
key는 해당 Atom에 할당되는 고유한 id 입니다. 단순히 상태 업데이트 시 사용되는 것 뿐 아니라 캐싱을 통한 성능 개선을 위해 사용합니다.
// 수
const numberTmpState = atom({
key: 'numberTmpState',
default: 0,
});
// 배열
const ArrayTmpState = atom({
key: 'ArrayTmpState',
default: [],
});
Selector
생성한 Atom을 활용하기 위해 Selector를 사용할 수 있습니다. Atom 정의 시 내부에 같이 정의할 수 있습니다.
const ArrayTmpState = selector({
key: 'ArrayTmpState',
get: ({get}) => {
return ArrayTmpState;
},
});
커스텀 함수 사용하여 활용
먼저 Atom의 상태를 공유할 최상의 컴포넌트를 RecoilRoot로 감쌉니다. 일반적으로 App.tsx에 작성합니다.
import {RecoilRoot} from 'recoil';
<RecoilRoot>
...
</RecoilRoot>
다음으로 Atom을 활용할 수 있는 함수를 작성합니다. 배열의 경우 아래와 같은 방식으로 활용할 수 있습니다.
const [arrayTmpState, setArrayTmpState] = useRecoilState(arrayTmpState);
const addArrayTmpState = () => {
...
};
const removeArrayTmpState = () => {
...
};
'프로그래밍 > React-Native <JSX>' 카테고리의 다른 글
[React-Native] android CodePush 시작하기 (0) | 2023.06.18 |
---|---|
[React-Native] android App Center SDK 등록하기 (0) | 2023.06.18 |
[React-Native] 두 Modal을 활용하여 뒷 배경 어둡게 처리하기 (0) | 2023.05.06 |
[React-Native] NativeWind 스타일링 미적용 문제 해결 (0) | 2023.04.30 |
[React-Native] Xcode DVTCoreDeviceEnabledState 빌드 오류 해결 (0) | 2023.04.29 |