일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 어려운데ㅠㅠ
- 소오름~
- ES6 브라우저 지원 현황
- .split()
- 삼항연산자
- arr.push()
- 구문과 의미
- 자바스크립트와 ECMAScript
- Promise.all()
- 가우스의 공식
- for반복문
- !x.includes()
- for문
- Ajax란?
- 배열 최솟값
- JavaScript
- array.reduce()
- 행렬...
- 자바스크립트
- 알고리즘
- Math.min
- a && b
- 소름돋는 알고리즘
- .map()
- 자바스크립트의 특징
- 프로그래머스
- 프로그래머스 공원 산책
- 자바스크립트의 탄생배경
- 프로그래밍이란
- async-await
- Today
- Total
Ming's develop story
Chapter3 - 리덕스를 통한 리덕스 상태관리 (설치, 개념, 용어, 특징) 본문
Chapter3 - 리덕스를 통한 리덕스 상태관리 (설치, 개념, 용어, 특징)
Ming 2021. 11. 22. 20:01리덕스 설치하기

redux - 리덕스
react-redux - 리덕스를 리액트에서 편히 쓸 수 있게 해주는 패키지
리덕스 개념과 용어 정리
리덕스는 데이터를 한 군데 몰아넣고, 여기저기에서 꺼내볼 수 있게 해주는 친구이다.
아래 용어들은 리덕스의 기본 용어인데, 내가 키워드 삼기 좋은 용어들이다.
(1) State
👉 리덕스에서는 저장하고 있는 상태값("데이터"라고 생각하셔도 돼요!)를 state라고 불러요. 딕셔너리 형태({[key]: value})형태로 보관한다.
(2) Action
👉 상태에 변화가 필요할 때(=가지고 있는 데이터를 변경할 때) 발생하는 것이다.
액션은 객체이다. 이런 식으로 쓰인다. type은 이름같은 것이고, 내가 정하는 임의의 문자열을 넣는다.
(3) ActionCreator
👉 액션 생성 함수라고도 부른다. 액션을 만들기 위해 사용한다.
(4) Reducer
👉 리덕스에 저장된 상태(=데이터)를 변경하는 함수이다.
우리가 액션 생성 함수를 부르고 → 액션을 만들면 → 리듀서가 현재 상태(=데이터)와 액션 객체를 받아서 → 새로운 데이터를 만들고 → 리턴해준다.
(5) Store
👉 우리 프로젝트에 리덕스를 적용하기 위해 만드는 것이다!
스토어에는 리듀서, 현재 애플리케이션 상태, 리덕스에서 값을 가져오고 액션을 호출하기 위한 몇 가지 내장 함수가 포함되어 있다. 생김새는 딕셔너리 혹은 json처럼 생겼다. 내장함수는 공식문서에서 보도록 하자.
(6) dispatch
👉 디스패치는 앞으로 정말 많이 쓸 스토어의 내장 함수이다! 액션을 발생 시키는 역할을 한다.
실제로는 이것보다 코드가 길지만, 간단히 표현하자면 이런 식으로 우리가 발생시키고자 하는 액션을 파라미터로 넘겨서 사용한다.
리덕스의 3가지 특징
(1) store는 1개만 쓴다!
👉 리덕스는 단일 스토어 규칙을 따른다. 한 프로젝트에 스토어는 하나만 쓰자.
(2) store의 state(데이터)는 오직 action으로만 변경할 수 있다!
👉 리액트에서도 state는 setState()나, useState() 훅을 써서만 변경 가능했었는데,
데이터가 마구잡이로 변하지 않도록 불변성을 유지해주기 위함이다.
*불변성 - 허락없이 데이터가 바뀌면 안된단 소리
조금 더 그럴 듯하게 말하면, 리덕스에 저장된 데이터 = 상태 = state는 읽기 전용이다.
그런데... 액션으로 변경을 일으킨다면서요? 리듀서에서 변한다고 했잖아요? → 그것도 맞다. 조금 더 정확히 해보면
가지고 있던 값을 수정하지 않고, 새로운 값을 만들어서 상태를 갈아끼운다!
즉, A에 +1을 할 때, A = A+1이 되는 게 아니고, A' = A+1이라고 새로운 값을 만들고 A를 A'로 바꾸죠.
(3) 어떤 요청이 와도 리듀서는 같은 동작을 해야한다!
👉 리듀서는 순수한 함수여야 한다는 말입니다. 순수한 함수라는 건,
- 파라미터 외의 값에 의존하지 않아야하고,
- 이전 상태는 수정하지(=건드리지) 않는다. (변화를 준 새로운 객체를 return 해야합니다.)
- 파라미터가 같으면, 항상 같은 값을 반환
- 리듀서는 이전 상태와 액션을 파라미터로 받는다.
'스파르타코딩클럽 - 항해99 > 항해99 Chapter3 - react 주특기 기본' 카테고리의 다른 글
Chapter3 - 컴포넌트에서 리덕트 데이터 사용 및 상세페이지와 연결 (0) | 2021.11.23 |
---|---|
Chapter3 - 리덕스 써보기(덕스 구조, 모듈 만들기, 스토어 만들기 및 컴포넌트 연결) (0) | 2021.11.22 |
Chapter3 - 리덕스란? (0) | 2021.11.22 |
Chapter3 - 라우팅 더 꼼꼼히 쓰려면? (0) | 2021.11.19 |
Chapter3 - 버킷리스트에 상세페이지 추가해주기 (0) | 2021.11.19 |