React hooks를 기초에서 이해 (useState 편)
18571 단어 신인 프로그래머 응원React프런트 엔드자바스크립트후크
React hooks란?
React 16.8에서 추가된 새로운 기능입니다.
클래스를 작성하지 않고도 state
와 같은 React 기능을 함수 구성 요소에서 간단하게 처리 할 수 있습니다.
useState란?
useState()
는 함수 구성 요소에서 상태를 관리 (state
유지 및 업데이트)하는 React 후크이며 가장 많이 사용되는 후크입니다.state
란, 컴퍼넌트가 내부에 보관 유지하는 「상태」를 말해, 화면상에 표시되는 데이터 등, 어플리케이션이 보관 유지하고 있는 상태를 가리킵니다. state는 props
와 달리 나중에 변경할 수 있습니다.클래스 컴포넌트와 함수 컴포넌트를 비교해보기
클래스 컴퍼넌트와 함수 컴퍼넌트에 있어서의 「상태」의 취급 방법의 차이를 확인해 보겠습니다.
클래스 컴포넌트
import React from 'react'
import './styles.css'
// countの初期値として、1~10までのランダムな数値を生成
const initialState = Math.floor(Math.random() * 10) + 1
class Counter extends React.Component {
constructor(props) {
super(props)
this.state = {
// クラスでは、コンストラクタ内で、this.stateの初期値{ count: initialState }をセット
count: initialState,
// this.stateの初期値{ open: false }をセット
open: true
}
}
// toggleメソッドを作成
toggle = () => {
this.setState({ open: !this.state.open })
}
render() {
return (
<>
<button onClick={this.toggle}>
{this.state.open ? 'close' : 'open'}
</button>
<div className={this.state.open ? 'isOpen' : 'isClose'}>
<p>現在の数字は {this.state.count} です</p>
{/*ボタンをクリックした時に、this.setState()を呼ぶことでcountステートを更新 */}
<button
onClick={() => this.setState({ count: this.state.count + 1 })}
>
+ 1
</button>
<button
onClick={() => this.setState({ count: this.state.count - 1 })}
>
- 1
</button>
<button onClick={() => this.setState({ count: 0 })}>0</button>
<button onClick={() => this.setState({ count: initialState })}>
最初の数値に戻す
</button>
</div>
</>
)
}
}
export default Counter
덧붙여서 styles.css의 내용은 이것뿐.
.isClose {
display: none;
}
.isOpen {
display: block;
}
이런 카운터가 생겼습니다.
함수 컴포넌트
hooks
useState
를 사용하여 클래스 구성 요소에서 함수 구성 요소로 다시 씁니다.함수 컴포넌트의 기본형은 다음과 같다.
const ExComponent = props => {
// ここでhooksを使える
return <div />
}
useState의 기본형
//const [状態変数, 状態を変更するための関数] = useState(状態の初期値);
const [count, setCount] = useState(initialState)
// ちなみにクラスコンポーネントでは、、、
this.state = {
count: initialState
}
useState
의 왼쪽에 있는 state
변수의 이름을 지정할 수 있습니다.(분할 대입 구문을 이미지하면 이해하기 쉽습니다.)
state
의 현재 값 state
의 현재 값을 업데이트하는 함수 state
가 업데이트 되더라도 initialState
는 initialState
로 유지됩니다 // 関数コンポーネント内で state を使えるようにするため、useState をインポート
import React, { useState } from 'react'
import './styles.css'
const Counter = () => {
// countの初期値として、1~10までのランダムな数値を生成
const initialState = Math.floor(Math.random() * 10) + 1
// count という名前の state 変数を宣言、初期値 initialState をセット
const [count, setCount] = useState(initialState)
// open という名前の state 変数を宣言、初期値 true をセット
const [open, setOpen] = useState(true)
// toggleの関数を宣言
const toggle = () => setOpen(!open)
return (
<>
<button onClick={toggle}>{open ? 'close' : 'open'}</button>
<div className={open ? 'isOpen' : 'isClose'}>
<p>現在の数字は{count}です</p>
{/* setCount()は、countを更新するための関数。countを引数で受け取ることも出来る */}
<button onClick={() => setCount(prevState => prevState + 1)}>
+ 1
</button>
<button onClick={() => setCount(count - 1)}>- 1</button>
<button onClick={() => setCount(0)}>0</button>
<button onClick={() => setCount(initialState)}>最初の数値に戻す</button>
</div>
</>
)
}
export default Counter
수업으로 작성한 경우와 동일한 결과를 얻었습니다
재 렌더링 후에도 React는 해당 변수의 현재
state
값을 그대로 갖고 있으며 최신 state
값을 함수에 전달합니다. 현재 state
값을 업데이트하려면 setState
를 호출합니다.마지막으로
다음에
useEffect
에 대해 쓰고 싶습니다.useState 관련 Qiita 기사 작성
React 공식 자습서의 클래스 구성 요소를 함수 구성 요소로 다시 작성
참고로 한 사이트
Reference
이 문제에 관하여(React hooks를 기초에서 이해 (useState 편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/seira/items/f063e262b1d57d7e78b4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)