리덕스의 3가지 규칙

정영찬·2022년 3월 12일
0

리액트

목록 보기
50/79
post-custom-banner

하나의 애플리케이션 안에는 하나의 스토어가 있다.

여러개의 스토어를 사용하는게 불가능한가? 그건 아니지만 권장하는 편은 안디ㅏ. 특정 업데이트가 빈번하게 일어나거나, 애플리케이션의 특정부분을 완전히 분리시키게 될때 여러개의 스토어를 만들수 있다. 하지만 그렇게 할 경우, 개발도구를 활용하지 못하게 된다.

상태는 읽기전용이다.

기존의 상태는 건드리지 않고 새로운 상태를 생성하여 업데이트 하는 방식으로 할 경우, 개발자 도구를 통해 뒤로 되돌릴수 있고, 앞으로 돌릴 수도 있다.

리덕스에서 불변성을 유지해야하는 이유는 내부적으로 데이터가 변경되는 것을 감지하기 위해서 shallow equality검사를 하기 때문이다. 이를 통해서 객체 변화를 감지할 때 깊숙한 안쪽까지 비교하는게 아니라 겉부분을 비교하여 좋은 성능을 유지하게 되는 것이다.

리듀서는 순수한 함수여야한다.

  • 리듀서 함수는 이전 상태와, 액션 객체를 파라미터로 받는다.
  • 이전의 상태는 절대 건드리지 않고 새로운 생태 객체를 만들어서 반환하다.
  • 똑같은 파라미터로 호출된 리듀서 함수는 언제나 같은 결과 값을 반환해야한다.

3번째 조건의 경우 실행할 때마다 다른 결과값이 나타날 수 있다. new Date()같은 현재 시간값을 반환하는경우, 무작위 값을 리턴하는 함수같은 경우, 네트워크의 요청을 하는 경우는 리듀서 바깥에서 처리해야하는데 이를 위해 리덕스 미들웨어를 사용한다.

profile
개발자 꿈나무
post-custom-banner

0개의 댓글