728x90
useState
import React from "react";
import ReactDOM from "react-dom";
function App() {
return (
<div className="App">
<h1>Hello</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
};
const rootElement = document.getElementById("root");
ReactDOM.render(<App/>, rootElement);
- useState는 항상 2개의 value를 return
- 첫번째 value를 item
- 두번째 value는 값을 변경하게 함
import React, {useState} from "react" // useState를 import
const [item, setItem] = useState(1);
- useState는 초기에 state를 InitialState를 세팅할 수 있는 옵션을 제공
- [item, setItem]의 이름을 주는 것은 선택사항 => 원하는 이름으로 변경해서 사용가능
- useState는 Array를 return 해야 함
- Array의 첫번째 요소가 item, 두번째 요소는 setItem이 됨
- 만약 item만 사용하고 싶다면
const [item] = useState();
대신에
const item = useState(1)[0];를 사용
- function을 수정하고 싶다면
const item = useState(1)[1];으로 변경
<h1>Hello {item}</h1>
arrow function으로 변경
import React, {useState} from "react";
import ReactDOM from "react-dom";
const 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}>incrementItem</button>
<button onClick={decrementItem}>decrementItem</button>
</div>
);
};
const rootElement = document.getElementById("root");
ReactDOM.render(<App/>, rootElement);
- incrementItem 버튼은 item에 1을 더하여 화면에 표시
- decrementItem 버튼은 item에 1을 빼서 화면에 표시
- onClick은 이벤트 리스너로 버튼을 클릭하면 동작하도록 하는 역할을 함
class Component
- hooks가 생기기 전에 우리는 state를 함수형 component에 사용할 수 없었음
- class Component는 this와 같은 문장 규칙과 render와 같이 사용하는 방법 고려했어야 했음
- 하지만 hooks는 return에다가 뿌려주고 그 위에 작성하기만 하면 됨
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}>IncrementItem</button>
<button onClick={this.decrementitem}>DecrementItem</button>
</div>
);
}
incrementItem = () => {
this.setState(state => {
return {
item: state.item + 1
};
};
decrementItem = () => {
this.setState(state => {
return {
item: state.item - 1;
};
};
};
}
const rootElement = document.getElementById("root");
ReactDOM.render(<AppUgly/>, rootElement);
- hooks를 사용하면 class Component를 사용하는 것보다 더 적은 코드를 사용하여 작성할 수 있음
공부 강의 : 노마더코더 - 실전형 리액트 Hooks 10개
'Front > React.js' 카테고리의 다른 글
useTabs Hooks (0) | 2025.01.10 |
---|---|
useInput Hooks (0) | 2025.01.10 |
리액트 Hooks (0) | 2025.01.08 |
[React] 리액트 Hook (훅) (2) | 2024.08.28 |
[React] 댓글 컴포넌트 제작 (Component & Props) (0) | 2024.08.26 |