새소식

React ·JS·TS

(React Hooks) useState

  • -
const [item, setItem] = useState(1);

useState는 항상 2개의 value 값을 return 시킨다.

 

 

 

const [item] = useState(1);
const item = useState(1)[0];

item 만 사용하는 경우에는  리스트에 담아서 선언해 주거나 단일로 인덱싱하여 사용한다

 

 

 

  return (
    <div className="App">
      <h1>Hello {item}</h1>
      <h2>Start editing to see some magic happen!</h2>
    </div>
  );

JavaScript 표현식으로 item의 값을 return 시켜준다

 

 

 

const App = () => {
 
};

화살표함수로 선언시 위와 같이 사용한다

 

 

 

  const incrementItem = () => setItem(item + 1);
  const decrementItem = () => setItem(item - 1);

incrementItem과 decrementItem 함수를 각각 선언해

 

 

 

  return (
    <div className="App">
      <button onClick={incrementItem}>incrememt</button>
      <button onClick={decrementItem}>decrememt</button>
    </div>
  );

onClick 이벤트에 함수를 선언해서 return 시켜준다.

 

 

 

import React, { useState } from "react";
 
export default function App() {
  const [item, setItem] = useState(1);
  const incrementItem = () => setItem(item + 1);
  const decrementItem
= () => setItem(item - 1);
  return (
    <div className="App">
      <h1>Hello {item}</h1>
      <h2>Start editing to see some magic happen!</h2>
      <button onClick={incrementItem}>incrememt</button>
      <button onClick={decrementItem}>decrememt</button>
    </div>
  );
}

useState 전체코드

 

 

 

useState 를 사용하지 않은 형태의 코드를 작성할 시

import React, { useState } from "react";
 
class AppUgly extends React.Component{
  state = {
    item : 1
  }
  render(){
    const {item} = this.state;
    return(
      <div className="App">
        <h1>Hello {item}</h1>
        <h2>Start editing to see some magic happen!</h2>
        <button onClick={this.incrementItem}>incrememt</button>
        <button onClick={this.decrementItem}>decrememt</button>
      </div>
    );
  }
  incrementItem = () => {
    this.setState(state => {
      return {
        item : state.item + 1
      }
    })
  }
  decrementItem = () => {
    this.setState(state => {
      return {
        item : state.item - 1
      }
    })
  }
}

위와같은 형태로 class를 선언하여 긴 코드를 작성해야 한다.

 

 

 

 

hooks--> 함수형 프로그램 권장 

'React ·JS·TS' 카테고리의 다른 글

Lifecycle Methods(생명주기 메서드)  (1) 2023.10.16
(React Hooks) useEffect - useTitle / useClick  (1) 2023.10.16
(React Hooks) useEffect  (1) 2023.10.16
(React Hooks) useState - useTabs  (0) 2023.10.16
(React Hooks) useState - useInput  (0) 2023.10.16
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.