개발자

Jotai가 Provider 없이 컴포넌트간의 atom 공유가 가능한 이유

2024년 01월 29일조회 86

상태관리 라이브러리인 jotai를 사용할때, Provider로 감싸지 않아도 atom 선언과 useAtom을 이용해 컴포넌트간의 공유가 가능한걸로 알고 있는데, 그 이유가 무엇인가요? 내부적으로 context api를 사용하는걸로 알고 있는데 provider가 없이 어떻게 가능한걸까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 0

답변이 없을 때 보이는 아이콘

첫 답변을 기다리고 있어요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 01월 29일

Jotai는 내부적으로 React Context API를 이용하며, 그 특성 때문에 Provider 없이도 컴포넌트 간의 atom 공유가 가능합니다. 일반적으로 React Context API를 사용할 때는 Provider를 이용해서 값을 제공하는 것이 일반적입니다. 하지만 Jotai는 다르게 작동합니다. 각각의 atom은 본질적으로 개별 React Context를 생성하고 관리하게 됩니다. 이로 인해 각각의 컴포넌트는 useAtom을 통해 해당 atom에 직접 접근하게 되므로, 별도의 Provider 없이도 상태 공유가 가능한 것입니다. 또한 Jotai는 'pull-based state management'라는 능동적인 방식을 사용하기 때문에 요청이 있을 경우에만 상태가 업데이트되어 불필요한 리렌더링을 최소화 합니다. 단, jotai에서는 RootProvider 컴포넌트를 제공하여 여러 atoms를 포함하는 큰 context를 관리할 수 있으니, 필요시 활용하면 됩니다. 단순히 선언된 atom들은 이러한 방식으로 동작하지만, 초기상태와 같이 전역 스코프에서 정의된 값들은 Provider로 감싸주어야 합니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!