일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 키바나
- 파일비트
- githubaction
- 자바 패치
- nextjs와 typescript
- 도커컴포즈
- 자동커밋
- 자동잔디
- 리액트 #무한스크롤
- 프론트엔드 신입
- 로그스태쉬
- 깃허브액션
- 엘라스틱서치로 로그관리
- java 면접정리
- 자바 패치노트
- java 신입면접
- NextJs
- 프론트엔드 면접
- 프론트 면접
- 엘라스틱서치
- 백엔드 신입
- 리액트 패치
- 프론트 면접족보
- 백엔드 면접
- 잔디심기
- java 신입
- next로 jwt
- 리액트 패치노트
- 자바17
- 리액트 버전
- Today
- Total
천쓰의 개발동산
React의 Redux,Reducer - 리액트 전역관리를 해보자(1) 본문
종합 프로젝트 이후 이번에 개선할점은 최적화 였다! 팀원들과의 규칙과 전역관리를 조금더 최적화시키려고 노력을 하다보니 저번에 하고싶었지만 못했던 리덕스로 리액트 전역관리를 해보려고 공부에 들어갔다 .
Redux의 세가지 원칙
- 하나의 애플리케이션 안에는 하나의 Store 만 사용해야 합니다.
- state는 읽기 전용 입니다. state를 변화시키는 유일한 방법은 Action을 전달하는 것 뿐입니다. 이를 통해 모든 state 변화를 중앙에서 관리 할 수 있으며, state 변경에 대한 추적이 용이해 집니다.
- state 변화를 일으키는 Reducer는 순수 함수로 작성되어야 합니다. Reducer는 현재 state와 Action을 전달 받아 다음 state를 반환하는 순수 함수 입니다. 즉, 이전 state를 변경하는 것이 아니라 새로운 state 객체를 생성하여 반환 합니다.
개념을 정리하자면
액션
상태에 어떠한 변화가 필요하면 액션(action)이란 것이 발생합니다. 이는 하나의 객체로 표현, 액션 객체는 다음과 같은 형식으로 이루어져 있다.
액션 객체는 type 필드를 반드시 가지고 있어야 합니다. 이 값을 액션의 이름이라고 생각하면 된다.
그리고 그 외의 값들은 나중에 상태 업데이트를 할 때 참고해야 할 값이며, 작성자 마음대로 넣을 수 있다.
내가 지금 공부중에 해본 메세지 Reducer 파일입니다 .
일단 리듀서파일을 만들어 액션 타입 등록
이후 스토어를 만들어주어
채팅리듀서를 선언하여, App.js 상위에 선언해주어 전역으로 사용할수있게 관리하면됩니다 .
여기서 이제 디스패치라는 것을 사용할건데
디스패치
디스패치는 스토어의 내장 함수 중 하나입니다. 디스패치는 “액션을 발생시키는 것”이라고 이해하면 됩니다. 이 함수는 dispatch(action)과 같은 형태로 액션 객체를 파라미터로 넣어서 호출합니다.
이 함수가 호출되면 스토어 리듀서 함수를 실행시켜서 새로운 상태를 만들어 줍니다.
이게 액션의 상태를 변경해주는 내용이다 .
이것으로 액션의 상태를 변경해주며, 가져와 사용할수있게된다.
이것도 그렇고 redux-thunk나 redux-saga 라는 리덕스의 비동기 작업을 처리하는방법이 있는데
이것은 2탄에서 설명하도록하겠다 !
'프론트엔드 > REACT' 카테고리의 다른 글
비전공자의 REACT 신입 개발자 면접 정리 (1) | 2024.06.05 |
---|---|
리액트 네이티브로 하단바 만들기 - 웹뷰 버전 (0) | 2024.01.16 |
REACT-CALENDER 라이브러리 커스텀하기 (2) | 2024.01.15 |
EXPO로 앱 만들기 [REACT-NATIVE] (1) | 2024.01.15 |
[리액트]무한 스크롤 intersection-observer (EASY 버전) (0) | 2023.11.16 |