-
Hooks와 Class 컴포넌트, react hook을 쓰는 이유React 2021. 10. 6. 02:25
Class 컴포넌트를 사용해서 state 값을 증가시키려면
class App extends Component { state = { count: 0, }; // state를 정의해야하고 modify = (n) => { this.setState({ const: n, }); }; // 그걸 정의해야하고 render() { const { count } = this.state; // 패스해야하고 return ( <> <div>{count}</div> <button onClick={() => this.modify(count + 1)}>Increment</button> </> ); } } export default App;
이렇게 하나하나 다 지정해줘야했다.
반면 hook을 사용해서 state 값을 증가시키려면
const App = () => { const [count, setCount] = useState(0); return ( <> {count} <button onClick={() => setCount(count + 1)}>increment</button> </> ); }; export default App;
useState
useState는 array로 2가지를 준다.첫번째 요소는 value, 두번째 요소는 이를 변경하는 방법.
const [count, setCount] = useState(0);
이렇게 표시하는 이유도 정말 보이는 그대로였다.
array의 첫번째 요소는 value이고, 이건 0에서 시작한다. 두번째 요소인 setCount로 value인 count를 변경한다.
const App = () => { const [count, setCount] = useState(0); const [email, setEmail] = useState(""); const updateEmail = (e) => { const { target: { value }, } = e; setEmail(value); // event로부터 target을 value로 넣어서 가져온 뒤 setEmail에 가져온 그 value를 넣음 }; return ( <> {count} <button onClick={() => setCount(count + 1)}>increment</button> <input placeholder="Email" value={email} onChange={updateEmail} /> </> ); }; export default App;
이렇게 간단하게 input의 onChange 이벤트를 발생시킬 수 있다
EffectHooks
class 컴포넌트에서의 life cycle이었던,
componentDidMount와 componentDidUpdate와 비슷하다
API에서 데이터를 요청할 때 사용한다
'React' 카테고리의 다른 글
API를 이용해 서버에서 데이터를 가져와보자 (0) 2021.09.29 react project를 시작하기 (0) 2021.08.12 module.css 모듈 css의 중요성 (0) 2021.08.05