Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- axios
- clipboardapi
- 코딩테스트
- 혼공단
- 혼공머신
- REACT
- 백준 #코딩테스트 #코테 #알고리즘
- styledcomonents
- 유니티 #게임개발
- 혼공챌린지
- reactmemo
- 백준
- 구조분해할당
- 초기값 설정하기
- 타입스크립트
- CSS
- useEffect
- js
- 혼자공부하는머신러닝딥러닝
- 혼자공부하는머신러닝
- 리액트
- 알고리즘
- 딥러닝
- 머신러닝
- TS
- Redux
- 에러해결방안
- error맛집
- typeScript
- 백준 #코딩테스트
Archives
- Today
- Total
좌충우돌 개발자의 길
[Redux] 리덕스 기초 본문
1. 리덕스 왜 필요할까?
- 상단에서 제일 말단까지 전해지는 과정이 매우 번거롭다.
- 말단까지 가는 데 일억개의 단계가 필요하다면 매우 시간이 오래걸리고 좋은 코드가 아니다.
=> 이 점을 극복하기 위해 리덕스로 개발
2. 리덕스 설치
npm install redux react-redux
- react-redux는 react와 redux가 서로 독립적이기 때문에 이 둘을 연결시켜주는 기능이다.
3. reducer
- storage안에 있는 state를 어떻게 바꿀 거인가를 결정
- 리덕스 사용하는데 있어서 무조건 사용해야함
import { createStore } from 'redux';
function reducer(currentState, action){
if(currentState === undefined ) { //현재 state가 정해지지 않았다면 기본 state를 리턴해줌
return {
number: 1, //number라는 state값의 기본이 1이다
}
}
const newState = {...currentState} // 과거의 state 복제해옴 -> 복제본을 수정하면 불변성 유지 가능
return newState;
}
const store = createStore(reducer);
- currentState : 현재 스테이트
- action : 어떻게 바꿀 것인가에 대한 요청을 받는 action
4. 리덕스 4인방
- react-redux에서 제공해줌
- Provider : 컴포넌트로, state를 어떤 컴포넌트에 제공할 것인가에 대해 가장 바깥쪽의 울타리를 정하는데 사용
- 필요한 애들을 Provider로 감싸줌
- store를 정의하여 에러 방지
- useSelector : 어떤 state값을 쓸지 결정
function Left3(props) {
const number = useSelector((state) => state.number); //number라는 state값을 쓰겠다!
return (
<div>
<h1> Left3: {number} </h1>
</div>
)
}
- useDispatch : state값을 변경시킬 때 사용
- 이 state를 사용하고 있는 number만 바뀐다 -> parent들은 다시 렌더링 안되어 퍼포먼스에 상당한 도움을 받음
import { createStore } from 'redux';
function reducer(currentState, action){
if(currentState === undefined ) {
return {
number: 1, //number라는 state값의 기본이 1이다
}
}
const newState = {...currentState};
if(action.type === 'PLUS') { //action이 PLUS면 1을 더해주라
newState.number++;
}
return newState;
}
const store = createStore(reducer);
...
function Rright3(props){
const dispatch = useDispatch(); //dispatch 데려오기
return(
<div>
<h1>Right3</h1>
<input
type="button"
value="+"
onClick={()=> {
dispatch({type: 'PLUS'}); //클릭 시, PLUS라고 actin에 전해주기
})
></input>
</div>
);
}
- connect : 재사용성 할 때 사용
출처 : 생활코딩
'STUDYING > Redux' 카테고리의 다른 글
[Redux] 리덕스 기본 동작원리 (1) | 2022.12.28 |
---|