はじめに
ReactをCDNから利用することは以前の記事で書きました。
▼過去の記事はこちら
Reactに限らずjavascriptのフレームワークでは状態管理が便利です。
Reactの状態管理useStateとuseEffectですが、npmで構築する時と書き方が少し変わってきます。
今回はCDNでuseState、useEffectを利用する時の書き方を紹介します。
useState、useEffectとは
useStateとは状態管理のReactフックです。
useEffectも状態管理のフックですがこちらは副作用の意味です。
必要な外部ファイルをCDNから呼び出す
CDNを呼び出すコードをheadタグ内に記入します
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.development.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.development.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/7.23.2/babel.min.js"></script>
処理を記入する
Reactの処理をscriptタグ内に書いて行きます。
<div id="root"></div>
<script type="text/babel">
function App() {
const [count, setCount] = React.useState(0);
const [count2, setCount2] = React.useState(0);
const handleClick = () => setCount(count + 1);
React.useEffect(() => {
// console.log('useEffect');
setCount2(count * count);
}, [count]);
return (
<>
<h1>CDNで使用するuseStateとuseEffect</h1>
<hr />
<table style={{marginBottom: '1em'}}>
<tbody>
<tr>
<td>カウント数</td>
<td>:{count}(useStateでカウント数を更新)</td>
</tr>
<tr>
<td>カウント数<sup>2</sup></td>
<td>:{count2}(useEffectでカウント数を乗算)</td>
</tr>
</tbody>
</table>
<div>
<button onClick={handleClick}>カウント</button>
</div>
</>
)
}
結果
「カウント」ボタンをクリックするとカウント数が1増え、カウント数2がuseEffectによってカウント数の2乗になります。
簡単ですがこれでReactをCDNで呼び出しuseState、useEffectを使用することができました。