useState
Hooksとは
Componentの中でイベントを起こすときに使います
例えば「再生ボタンのようにクリックすると再生マークから停止マークに変わります」のようなイベントです
HooksにはuseState , useEffect などいろいろなメソッドがあります
基本的な使い方
import {useState} from 'react';
const [現在の状態 , 更新関数] = useState(初期値)
更新関数(新しい値)
App.jsxだけで完結するカウンター
import React, { useState } from 'react';
import './App.css';
function App() {
const [count, setCount] = useState(0);
return (
<div className="container">
<div className="counter">
<h2>Counter App</h2>
<p>{count}</p>
<div className="buttons-row">
<button onClick={() => setCount(count + 1)}>+</button>
<button onClick={() => setCount(count - 1)}>-</button>
</div>
<div className="button-reset">
<button onClick={() => setCount(0)}>reset</button>
</div>
</div>
</div>
);
}
export default App;
応用バージョン(ファイルの分割)
components/PublishButton.jsx
const PublishButton = (props) => {
return(
<button onClick={() => props.onClick()}>
{props.isPublished.toString()}
</button>
)
}
export default PublishButton;
components/Article.jsx
import {useState} from 'react';
import {PublishButton, Title} from './index';
const Article = (props) => {
const [isPublished, setIsPublished] = useState(false)
const publishArticle = () => {
setIsPublished(true)
}
return (
<>
<Title title={props.title} />
<PublishButton isPublished={isPublished} onClick={publishArticle} /> <--- ???
</>
)
};
export default Article;
onClick={publishArticle} は onClick={() => publishArticle()} と同じ意味です
BACK