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
- 친절한SQL튜닝
- 스프링부트핵심가이드
- 코드로배우는스프링부트웹프로젝트
- iterator
- 티스토리 쿠키 삭제
- resttemplate
- 알파회계
- 목록처리
- 구멍가게코딩단
- 데비안
- Kernighan의 C언어 프로그래밍
- /etc/network/interfaces
- 코드로배우는스프링웹프로젝트
- 선형대수
- d
- baeldung
- 서버설정
- 스프링 시큐리티
- 처음 만나는 AI수학 with Python
- ㅒ
- 자료구조와함께배우는알고리즘입문
- 이터레이터
- 리눅스
- 네트워크 설정
- 처음 만나는 AI 수학 with Python
- 페이징
- 자바편
- 자료구조와 함께 배우는 알고리즘 입문
- GIT
- network configuration
Archives
- Today
- Total
bright jazz music
생활코딩: useReducer 본문
1. App.js 작성
import React, {createContext, useContext, useEffect, useReducer, useState} from "react";
function App(){
// const [count, setCount] = useState(0);
const [count, countDispatch] = useReducer(countReducer, 0); //countReducer: 회계직원, 0:초깃값
const [number, setNumber] = useState(1)
function countReducer(oldCount, action){ //old가 접두어인듯, action은 예약어
if(action.type === 'UP'){
return oldCount + action.number;
// }else if(action === 'DOWN'){
}else if(action.type === 'DOWN'){
// return oldCount - 1;
return oldCount - action.number;
}else if(action.type === 'RESET'){
return 0;
}
}
function down(){
// countDispatch('DOWN'); //countDispatch에 값(액션)이 전달되면,
// countReducer 함수가 호출되면서 두 개의 값을 입력받는다. 하나는 현재 값, 하나는 action
countDispatch({type:'DOWN', number:number});
}
function up(){
countDispatch({type:'UP', number:number});
}
function reset(){
countDispatch({type:'RESET', number:number});
}
function changeNumber(event){
setNumber(Number(event.target.value));
}
return(
<div>
<input type="button" value="-" onClick={down}></input>
<input type="button" value="0" onClick={reset}></input>
<input type="button" value="+" onClick={up}></input>
<input type="text" value={number} onChange={changeNumber}></input>
<span>{count}</span>
</div>
)
}
export default App;
/**
userReducer 사용 이유
:
사용하는 쪽에서는 복잡한 로직을 처리하지 않아도 된다.
복잡한 상태를 바꾸는 것은 전문화된 함수가 처리할 수 있게 된다.
이 예제처럼 이전의 값과 이후의 값이 서로 상당한 관계성을 가지는 경우 (이전값 +, - 등),
리듀서를 사용하면 상태를 변경하는 과정을 리듀서 함수 안에 은닉할 수 있다.
*/
'Framework > ReactJs' 카테고리의 다른 글
생활코딩: react-redux 예제2 (0) | 2023.05.17 |
---|---|
생활코딩: react-redux 예제1 (0) | 2023.05.17 |
생활코딩: context API (0) | 2023.05.16 |
생활코딩: styled-components (0) | 2023.05.16 |
생활코딩: React-Router-DOM 실습 (0) | 2023.05.15 |
Comments