[React Hooks - 1] useState

in hive-101145 •  4 years ago 

React Hooks 첫번째 공부!!

제일 기본이 되는 useState에 대해서 공부해 봅니다.

// useState는 react로 부터 import 받을 수 있습니다.
import { useState } from "react";
// useState의 첫번째 인자는 최초 값을 설정합니다. 그 값은 배열의 첫번째 값(item)에 할당 됩니다.
// setItem은 첫번째 값을 바꿀 수 있는 함수를 나타냅니다. 
 const [item, setItem] = useState(0);
전체 소스
import React, { StrictMode, useState } from "react";
import ReactDOM from "react-dom";
import "./styles.css";

// Hooks를 사용한 경우
const App = () => {
  const [item, setItem] = useState(0);
  const increaseItem = () => setItem(item + 1);
  const decreaseItem = () => setItem(item - 1);

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

// Hooks를 사용하지 않은 경우
class AppUgly extends React.Component {
  state = {
    item: 1
  };

  render() {
    const { item } = this.state;

    increaseItem = () => {
      this.setState((state) => {
        return {
          item: state.item + 1
        };
      });
    };

    decreaseItem = () => {
      this.setState((state) => {
        return {
          item: state.item - 1
        };
      });
    };

    return (
      <div className="App">
        <h1>New Hello {item}</h1>
        <h2>Start editing to see some magic happen!</h2>
        <button onClick={increaseItem}>Increase</button>
        <button onClick={decreaseItem}>Decrease</button>
      </div>
    );
  }
}

// 구분자
const Divider = () => {
  return <div className="divider"></div>;
};

// 결과 표시
const rootElement = document.getElementById("root");
ReactDOM.render(
  <StrictMode>
    <App />
    <Divider />
    <AppUgly />
  </StrictMode>,
  rootElement
);
결과 화면
  • 위와 아래 모두 같은 기능이 정상적으로 작동합니다.
  • 기존에 사용하였던 React.component 형태의 class 소스보다 월등히 적은 소스를 보여주고, 직관적으로 표시되기도 합니다.
  • React.component의 경우 this와 아닌 경우 등을 잘 구분해서 사용해야하지만, hooks는 this 없이 사용 가능합니다.

이상 오늘도 즐거운 react study!!!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

[US$140.00](▼54%)샤오미 드리미 V10 무선 청소기 / 유럽버전! / 6개월무료A/S / 무료배송/

WWW.QOO10.COM

@happyberrysboy transfered 35 KRWP to @krwp.burn. voting percent : 80.45%, voting power : 80.86%, steem power : 1719109.12, STU KRW : 1200.
@happyberrysboy staking status : 7350 KRWP
@happyberrysboy limit for KRWP voting service : 22.05 KRWP (rate : 0.003)
What you sent : 35 KRWP
Refund balance : 12.95 KRWP [51657394 - 987ec0668ec0c2939130d3fedc5d01f679bc8a3d]

제일 기본이 되는 useState에 대해서 공부해 봅니다.

공부 시작했다~ 공부 끝났다...ㅎㅎ
오늘도 수고하셨습니다^^

sct 스왑 신청을 했는데, 아직 스왑이 되지 않고 있어서(스팀으로) 여기에 글을 남깁니다. @happyberrysboy님에게 남기는게 맞는지 모르겠습니다. ㅎ
1,000개 스왑신청을 한 것은 스왑되었고, 그 이후에 sct 500개 신청한 것은 안되었습니다. 혹시 전송에러가 있나 싶어서 sct 10개를 스왑신청해봤는데 이건 스왑되었습니다.

20210302_213716.png

확인 좀 부탁드립니다~

  ·  4 years ago (edited)

확인했고, sct 500개 다시 돌려드렸습니다. 감사합니다!

오~ 감사합니다^^

ㅎㅎ 기본을 모르고 있는 사람은 할 말이 없네요.

@gijoona님이 당신을 멘션하였습니다.

https://www.steemit.com/@gijoona/2lond2