トッカンソフトウェア

React コンポーネント

今回はコンポーネントを作成します。コンポーネントは要素として使用できます。
前回の続きからやるので環境構築は前回を見てください。

コンポーネントなしのサンプル

src\App.jsx


import { useState } from 'react'

function App() {
  const [count, setCount] = useState(0)

  return (
    <>
      <button onClick={() => setCount((preVal) => preVal + 1)}>
        +button
      </button>
      <button onClick={() => setCount(0)}>
        reset
      </button>
      <div>{count}</div>
    </>
  )
}

export default App

useStateで特別は変数(state変数といいます)とそのセッターを定義しています。
(上記の例では、countとsetCount)

この変数は値を変更すると画面を再計算します。
この変数の値を変更するには、一緒に定義したセッターを使用します。

セッターは値を渡して更新するか、関数を渡して既存値の更新を行います。

実行結果


コンポーネントのサンプル

src\App.jsx


import { useState } from 'react'
import App2 from './App2'

function App() {
  const [count, setCount] = useState(0)

  function execute() {
    setCount((preVal) => preVal + 1);
  }
  return (
    <>
      <h1>Parent</h1>
      <button onClick={() => setCount(0)}>
        reset
      </button>
      <div>{count}</div>
      <App2 val={count} exec={execute} />
    </>
  )
}

export default App

src\App2.jsx


function App2({ val, exec }) {

  return (
    <>
      <h2>child</h2>
      <button onClick={() => exec()}>
        +button
      </button>
      <div>{val}</div>
    </>
  )
}

export default App2

親コンポーネント(App)の変数と関数を子コンポーネント(App2)に渡し、子コンポーネントで変数の表示と関数の実行を行っています。
親、子コンポーネントのどちらで変数を更新しても親子両方に反映されます。

実行結果




ページのトップへ戻る