0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

React Hooksとは

Last updated at Posted at 2022-12-15

hookとは

React公式には以下のように記載されています。

フック (hook) は React 16.8 で追加された新機能です。state などの React の機能を、クラスを書かずに使えるようになります。

そもそもstateって何のことでしょうか、まずはそこから整理していきます。

stateとは

React ではユーザの動きに合わせて変わる値のことをstateという。
以下の例のように、constructor内でオブジェクトとしてstateを定義します。
定義されたものは、this.state.プロパティ名で設定した値を取得することが可能です。
また、this.setState({プロパティ:設定する値})で、プロパティの値を変更できます。

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      count: 0 // countプロパティを定義(初期値は0)
    };
  }
  handleClick(){
    // countの値を変更
    this.setState({count:this.state.count+1});
  }
  render() {
    return (
      <div>
        <h1>
          {this.state.count}
        </h1>
        <button onClick={()=>{this.handleClick()}} >+</button>

      </div>
    );
  }
}

useState

hook はstate などの機能を関数コンポーネント内に使用できるようにするための関数です。
先ほどのサンプルではクラス内でstateを使っていましたが、例えば以下のように記述できるということです。

import React, { useState } from 'react';

function Example() {
  // countを定義(初期値は0)
  const [count, setCount] = useState(0);

  handleClick(){
    // countの値を変更
    setCount(count + 1);
  }
  return (
    <div>
      <h1>
        {count}
      </h1>
      <button onClick={()=>{this.handleClick()}} >+</button>
    </div>
  );
}

useState というhookを使ってcountの値を管理し、値を更新する場合はsetCountを使用します。
hookを使った方が、よりスッキリとしたコードになりました。
これがhookというものです。

useEffect

useEffectは毎回レンダリング後に、その処理が実行されます。
componentDidMountやcomponentDidUpdateと同じようなものです。

import React, { useState, useEffect } from 'react';

function Example() {
  // countを定義(初期値は0)
  const [count, setCount] = useState(0);

  useEffect(() => {
    document.title = `You clicked ${count} times`;
  });

  handleClick(){
    // countの値を変更
    setCount(count + 1);
  }
  return (
    <div>
      <h1>
        {count}
      </h1>
      <button onClick={()=>{this.handleClick()}} >+</button>
    </div>
  );
}```
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?