희락코딩

React_useState 와 onclick을 활용한 카운터 만들기 본문

프로그래밍/React

React_useState 와 onclick을 활용한 카운터 만들기

Hello JoyCoding 2021. 5. 2. 23:05
728x90
반응형

 

#useState

 

16.8이후부터 useState라는 함수를 사용하여 함수형 컴포넌트에서도 state를 사용할 수 있게 되었습니다. 이과정에서 Hooks이라는 것을 사용하는데 이번 블로깅은 useState와 onclick을 활용해서 카운터를 만들어 보겠습니다. 

 

우선 이함수를 사용하기전에 배열의 비구조 할당에 대한 개념이 잡혀야 useState함수를 좀더 익숙하게 사용할 수 있습니다.


1
2
3
4
5
6
7
8
9
// 일반적일 배열 할당
const array = [12];
const one = array[0];
const two = array[1];
 
// 배열 비구조화 할당
const array = [12];
const [one, two] = array;
 
cs

 

위 와같이 배열 비구조화 할당을 사용하면 훨씬 깔끔하고 코드를 줄일수 있어 더 깔끔합니다.

 

이제부터 카운터를 구현할 코드를 새로운 컴포넌트를 만들어서 작성해 봅시다!

아래 코드를 복사해서 활용해보기!

 

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
//Joycoding 컴포넌트 (카운터)
 
import React,{ useState } from "react";
 
function Joycoding() {
 
const [num, setNum] = useState(0);
 
const upNum = () => {
  setNum(prevnumber => prevnumber + 1// 최신화 함수 관리시 사용
  //setNum(num + 1)  //이렇게 써도 상관없습니다.
}
 
const downNum = () => {
  setNum(num - 1)
 
  return (
    <div>
      <h1>{num}</h1>
      <button onClick={upNum}>+1</button>
      <button onClick={downNum}>-1</button>
    </div>
  );
}
 
export default Joycoding;
cs

 

import React,{ useState } from 'react'  //코드 3번줄

useState함수를 사용하기 위해서 import를 통해 불러옵니다.

 

const [num, setNum] = useState(0);   // 코드 7번줄

배열에 있는 num과 setNum을 useState에 비구조 할당을 해줍니다. 여기서 (0)은 초기값이 0이라는 뜻입니다. 그리고 배열에 있는 num과 setNum은 본인이 원하는 이름으로 설정해도 상관없습니다. 될수 있으면 직관적인 이름을 사용해 줍시다!

 

const upNum = () => { setNum(num + 1) }  // 코드 9,10번 줄

upNum변수에 만들어 1씩증가하는 함수를 만들어 줍니다.

 

const downNum = () => { setNum(num - 1) } // 코드 14,15번 줄

downNum변수에 만들어 1씩 감소하는 함수를 만들어 줍니다.

 

<button onClick = {upNum}>+1</button// 코드 21번줄

버튼태그에 upNum함수의 이벤트를 넣어 줍니다.

 

<button onClick={downNum}>-1</button> // 코드 22번줄

버튼태그에 downNum함수의 이벤트를 넣어 줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//App.js
 
import React from "react";
import Joycoding from './Joycoding'
 
 
function App() {
  return (
    <div>
     <Joycoding/>
    </div>
  );
}
 
export default App;
 
cs

 

끝으로 작성한 카운터 컴포넌트(Joycoding)를 App.js 렌더링 값에 넣어 주고 결과 값을 확인 하면 아래와 같은 화면이 출력 됩니다.

 

 

버튼을 이리저리 눌러보세요!! 마법같은 일이!

 

 

728x90
반응형

'프로그래밍 > React' 카테고리의 다른 글

React- redux 이론정리 1/2  (0) 2021.06.07
React_Styled-Component  (1) 2021.06.03
React_Props  (0) 2021.05.02
React_JSX 규칙  (2) 2021.05.01
Comments