react-tutorial icon indicating copy to clipboard operation
react-tutorial copied to clipboard

2. 리덕스의 3가지 규칙 · GitBook

Open utterances-bot opened this issue 4 years ago • 3 comments

2. 리덕스의 3가지 규칙 · GitBook

https://react.vlpt.us/redux/02-rules.html

utterances-bot avatar Oct 13 '21 05:10 utterances-bot

리덕스의 3가지 규칙

  1. 하나의 애플리케이션에 하나의 스토어

  2. 상태는 읽기전용 리액트의 불변성

  3. 변화를 일으키는 함수, 리듀서는 순수한 함수 동일한 인풋 => 동일한 아웃풋 new Date(), 랜덤 숫자 생성, 네트워크에 요청 등은 순수하지 않은 작업(?) -> 리듀서 밖에서 처리

sshusshu avatar Oct 13 '21 05:10 sshusshu

하나의 애플리케이션 안에는 하나의 스토어를 가져야 한다.

  • 하나의 App에는 하나의 스토어를 만들어 사용한다.
    • 필수는 아니지만 권장하지 않는다.
    • 개발 도구를 활용할 수 없기 때문이다.

상태는 읽기 전용이다.

  • 기존의 상태를 수정하지 않고 새로운 상태를 생성하여 업데이트한다. (교체의 개념)
  • 이를 통해 불변성을 유지할 수 있다. → 데이터의 변경을 감지하기 위해서는 내부 데이터까지 전부 찾아봐야 하는데 이 경우 시간이 너무 오래 걸린다. → 따라서 기존 상태의 객체를 새로운 객체로 변경하면 객체의 주소가 다르므로 변경을 쉽게 감지하는것이 가능하다.

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

  • 리듀서는 이전 상태와 액션 객체를 파라미터로 받는다.
  • 이전의 상태는 건들이지 않고 변화로 새로운 상태 객체를 만든다.
  • 동일 인풋에 대한 동일 아웃풋이 보장되어야 한다. (순수해야 한다.)

하지만 그렇지 않은 경우도 존재한다. 이때 리덕스 미들웨어라는 것을 사용한다.

ProgWon avatar Nov 25 '21 19:11 ProgWon

3번 변화를 일으키는 함수 ~에서 두 번째 쓰신 문장에 다음 "건드리지"가 맞는 걸로 알고 있습니다~ 확인 부탁드려요 이전의 상태는 절대로 건드리지 않고, 변화를 일으킨 새로운 상태 객체를 만들어서 반환합니다.

0x-Robert avatar Jan 22 '23 13:01 0x-Robert