인프런 커뮤니티 질문&답변

박재호님의 프로필 이미지

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

게시글 삭제 saga 작성하기

리덕스 미들웨어로 비동기 관리 질문

해결된 질문

작성

·

223

1

안녕하세요 제로초님

전역상태 관련해서 궁금한점이 생겨 질문드립니다.
1. 예를들어 게시글 생성페이지와 게시글수정페이지가 {title: '' content: ''} 와같이 같은 폼양식이면 같은 전역상태를 사용하는 것인가요? 
그렇다면 제로초라는 게시물 수정페이지에 들어가면 게시글아이디를 통해 비동기로 서버로부터 게시물 데이터를 받고 전역상태에 값을 셋팅해준다음 화면에 뿌려주고
페이지를 벗어난다면  게시글이라는 전역상태를 모두 빈값으로 초기화를 하여 게시글 생성페이지에 진입시 모두 빈값으로 화면에 뿌려주는 방식인건가요?? 헷갈립니다..

2. 다른 질문이긴하지만 컴포넌트 파일에서 컴포넌트 바깥에 데이터를 두게된다면(ex: 상태의 초기값이나 상수) 성능에 안좋은건가요?? 

답변 2

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

1. 질문이 이해가 잘 안됩니다. 전역상태는 어느 컴포넌트에서나 접근 할 수 있는 상태를 의미합니다. 리덕스에 저장한 상태같은 것이 있습니다. 생성 페이지와 수정 페이지가 같은 전역상태를 공유할 필요는 없습니다.

2. 상수는 바깥에 둬도 되는데 변수는 바깥에 두면 문제가 발생합니다. 같은 컴포넌트를 여러 번 사용할 때 바깥에 둔 변수가 공유되어버립니다.

0

박재호님의 프로필 이미지
박재호
질문자

네 제로초님! 저도 아직 정리가 안되서 질문 내용이 매끄럽지 않은점 죄송합니다. 

리덕스 미들웨어로 비동기처리를 하여 관심사분리를 한다는점은 이해가 갑니다.
여러곳에서 사용되는 데이터들만 리덕스 전역상태로 관리하고 그 상태에관한 비동기처리들만 리덕스 미들웨어로 한다로 이해하면될까요?
 예를들어 게시글 생성페이지인경우 그안에서만 상태를 사용하니 전역상태로 두지 않고 컴포넌트 안에서 내부적으로 상태를 두고 엑시오스로 비동기 처리를 한다.로 정리된것같습니다.

덧붙혀서 리덕스 미들웨어로 비동기관리하는것과 react-query는 서로 대체제로 사용되는 것인가요? 그렇다면 제로초님은 어떤방법을 선호하시나요?

두번째 질문 같은경우  아래 이미지의 주석 위치에도 같은 컴포넌트를 여러번사용할때 공유되는 현상이 생기는걸까요?
항상 빠른답변 감사합니다 제로초님!!

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 리덕스 미들웨어 부분은 그렇게 이해하시면 됩니다.

react-query로 redux를 완벽하게 대체할 수는 있긴 한데 라이브러리의 원래 의도는 그게 아니긴 합니다.  react-query는 query에 관련된 것만 최적화하는 것이 주 목적입니다. 다만 그게 사실 전역상태관리의 대부분이라서 어쩌다보니 redux를 대체할 수는 있습니다. 저는 프로젝트에서 필요한 경우 둘 다 씁니다.

2번 질문 관련해서는 공유됩니다. 절대 저기에 작성하지 마세요. 상수는 어차피 값이 고정이니까 괜찮습니다.