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 없이 사용 가능합니다.
[US$140.00](▼54%)샤오미 드리미 V10 무선 청소기 / 유럽버전! / 6개월무료A/S / 무료배송/
WWW.QOO10.COMDownvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@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]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
공부 시작했다~ 공부 끝났다...ㅎㅎ
오늘도 수고하셨습니다^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
sct 스왑 신청을 했는데, 아직 스왑이 되지 않고 있어서(스팀으로) 여기에 글을 남깁니다. @happyberrysboy님에게 남기는게 맞는지 모르겠습니다. ㅎ
1,000개 스왑신청을 한 것은 스왑되었고, 그 이후에 sct 500개 신청한 것은 안되었습니다. 혹시 전송에러가 있나 싶어서 sct 10개를 스왑신청해봤는데 이건 스왑되었습니다.
확인 좀 부탁드립니다~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
확인했고, sct 500개 다시 돌려드렸습니다. 감사합니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오~ 감사합니다^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
ㅎㅎ 기본을 모르고 있는 사람은 할 말이 없네요.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@gijoona님이 당신을 멘션하였습니다.
https://www.steemit.com/@gijoona/2lond2
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit