일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JSON
- Redux store
- react redux
- redux 사용방법
- useSearchParams
- javascript React
- foreach
- 인라인블럭
- react
- useEffect
- redux toolkit
- Redux
- useParams
- 자바스크립트배포
- 콜백함수
- first-child
- React state
- javascript코딩테스트
- 자바스크립트
- couchcoding
- JavaScript
- line-through
- 협업프로젝트
- sort
- 카우치코딩
- 6주포트폴리오
- React onClick
- db.json
- 블럭요소
- toString
- Today
- Total
개발하는 루루언니
React : Redux 를 이용한 증가 감소 버튼 만들기 본문
Redux의 기본구조를 알아야 할 수 있는 내용이다.
모르면 기본구조 부터 공부해야 한다.
구현할 프로젝트: 증가 버튼을 누르면 5씩 증가 , 감소버튼을 누르면 5 씩 감소
💙이해하기 쉽게 내가 사용한 함수를 정리해보자 💙
< dispatch>
1. dispatch 를 사용하면 == action의 값과 동일하다.
2. dispatch 는 2개의 매개변수를 가질 수 있는데 type 과 payload
3. type 은 이름이고 payload는 내가 원하는 값을 넘겨주는 함수의 매개변수라 생각하면 된다.
4. dispatch ( { type : "이름" , payload :{num:5} } ) 이렇게 중괄호 안에 사용해야 하며 payload는 넘겨줄 값을 쓸때도 {} 안에 키 값과 출력값을 작성한다.
<useSelector>
1. useSelector 은 store에 저장한 값 즉 state에 있는 값을 app에 넘겨주는 역할을 하는 아이다.
2. let count = useSelector ((state)=> state.count) 이 코드를 해석하면
state 값에는 count = 0 이라는 초기값이 들어가져 있는데 app에는없고 reducer 파일에 있다.
그래서 store에 전달된 그값을 다시 app으로 전달하는게 useSelector이다
state 에서 전달할께 => 근데 state 에 있는 모든값을 가져오는게 아닌 count 값만 가져오고 싶어 .count를 하는것
app 💛
let count = useSelector(state=>state.count)
// useDispath를 dispath란 변수에 넣고 사용한다.
const dispatch = useDispatch()
// 나는 증가시키는 함수야 payload의 값이 5기 때문에 5씩 증가해
const increse=()=>{ dispatch({type:"INCREAMENT",payload:{num:5}})
//나는 감소시키는 함수야 payload의 값이 5기 때문에 5씩 감소해
const Decrement=()=>{ dispatch({type:"DECREMENT",payload:{num:5}}) }
return(
<>
<button onClick={ increse }> 증가 </button>
<button onClick={Decrement}>감소</button>
</>
)
< reducer💛>
let initialState={
count: 0,id : "",password: "",}function reducer(state=initialState,action){console.log(action)
switch (action.type){case "INCREAMENT" :return{ ...state, count:state.count+action.payload.num };case "LOGIN" :return{...state,id:action.payload.id,password:action.payload.password}case "DECREMENT" :return{...state,count :state.count-action.payload.num}default:
return {...state}
<💛순서대로해석💛>
생각보다 어려울 수 있지만 천천히 하나씩 뜯어보면 이해할 수 있다.
나도 이렇게 진행하는데 있어서 몇일이 걸렸지만 어떻게 사용해야 하는지 익히는 시간이였다.
오늘도 이렇게 하나를 알아가며 뿌뜻함을 느끼며 성장해 나가는게 보여서 좋다.
'컴퓨터 정보 > 리액트' 카테고리의 다른 글
redux-toolkit 사용방법 (0) | 2022.10.28 |
---|---|
버튼의 type이 submit 이면? onClick이 아니라 onSubmit 을 사용해 (0) | 2022.10.26 |
Redux 의 구조 * 필독 * (0) | 2022.10.25 |
Redux 설치하기 (0) | 2022.10.19 |
Redux 기초 상식 흐름 이해하기 (0) | 2022.10.19 |