Reactを難しく感じる理由と、その解決法【後編】

Reactを難しく感じる理由と、その解決法【後編】

2024.3.13 2026.6.14

この記事は約2 分で読めます


「Reactをなんとなく書けるけど、自信が持てない....」

という人向けの記事です。

functionとイベントの記法を整理すると、Reactの全体像がすっきり見えてきます。

三好アキ プロフィール写真

筆者三好アキ(専門用語なしでプログラミング)

私について詳しくは → 自己紹介

Reactが難しい原因は知識不足

本記事の前編に書きましたが、React入門に成功して、最初のハードルを超えた人が感じるReactの難しさの原因。

それはJavaScriptの知識不足になります。

具体的には次の2つの項目です。


  • function(コンポーネント)の記法

  • イベントの記法


本記事では、前半で【function】、後半で【イベント】を確認します。

この2つがわかれば、Reactに感じる苦手意識がぐっと減るでしょう。

image

monotein.com/present

【function編】なぜfunctionの理解がReactの理解につながるのか

まず最初に丸暗記してもらいたいのは、次のことです。


Reactのコンポーネント = JavaScriptのfunction


例えば下記のコードはReactのコンポーネントです。

const List = () => {
    return (
        <div>
            <h1>こんにちは</h1>
        </div>
    )
}

export default List

これは「Reactのコンポーネントである」と同時に、「JavaScriptのfunctionである」ともいえます。

JavaScriptのfunctionを理解することは、Reactのコンポーネントを理解することとまったく同じなのです。

なぜでしょうか?

具体的に見ていきましょう。

【function編】functionの構造

functionの記法、つまり構造は次のようになっています。

function 名前() {
    実行したい操作

    return 操作後のデータ
}

「名前」は好きなものが使えます。

しかし、書き方はこれだけではありません。

【function編】functionの記法いろいろ

いま見たfunctionは、constを使って次のようにも書けます。

const 名前 = function () {
    実行したい操作

    return 操作後のデータ
}

さらに2015年のJavaScriptのアップデートで導入された「アロー関数/arrow function」を使うと、次のようにも書けます。

const 名前 = () => {
    実行したい操作

    return 操作後のデータ
}

functionという文字が=>に変わり、場所が右に移動しています。

ここまで見た3つはすべて同じ働きです。

ただ記法が違うだけです(*厳密には細かな違いがありますが、当面重要ではありません)。

functionには、この3つ以外にもさまざまな書き方があります。

次のような、カッコと矢印だけのものも立派なfunctionです。

;() => 実行したい操作

以上紹介した以外にも、まだバリエーションがあります。

しかし、このようなfunctionの記法を覚えることで、Reactをより自由に使えるようになります。

次は、もうひとつのポイント「イベントの記法」を見てみましょう。

【イベント編】イベントとはfunctionのこと

Reactではさまざまな「イベント」が出てきます。

「イベント」とはユーザーがアプリ上でするアクションのことですが、React開発で出てくる90%以上は次の3つです。


  • <button>を押す

  • <input>に文字を入力する

  • <form>を提出(submit)する


これらのユーザーのアクションを検知するために、Reactでは次の専用コードを使います。


  • <button>を押す => onClick

  • <input>に文字を入力する => onChange

  • <form>を提出(submit)する => onSubmit


さて、ユーザーがこれらのアクションをしてくれたら、アプリは何らかの反応を返さないといけません。

もし「<input>に文字を入力する」なら、その入力してくれた文字を表示することが反応になりますし、「<button>を押す」なら「ポップアップを出す」といった反応です。

これらを担うのはfunctionなので、Reactの「イベント」とは常にfunctionと一緒であると想像できます。

具体的にコードで見てみましょう。

import { useState } from "react"

const List = () => {
    const [data, setData] = useState("")

    return <input onChange={(e) => setData(e.target.value)} />
}

export default List

これは<input>に入力した文字が、stateのdataに書き込まれるコードになります。

ここで注目してもらいたいのは、<input>タグ内の次のコードです。

onChange={(e) => setData(e.target.value)}

【イベント編】イベントの記法いろいろ

このようにタグ内に書く記法(インライン方式)とともに、次のように別の場所で書いたものを持ってくる記法もあります。

import { useState } from "react"

const List = () => {
    const [data, setData] = useState("")

    const handleChange = (e) => {
        setData(e.target.value)
    }

    return <input onChange={handleChange} />
}

export default List

上記のように他所から持ってきても、最初のようにインラインで書いても、働きはまったく同じです。

ここで思い出してもらいたいのが、本記事の最初で紹介したfunctionの構造です。

const 名前 = () => {
    実行したい操作

    return 操作後のデータ
}

これをいま見たReactのコードに当てはめてみると、次のようになります。

import { useState } from "react"

const List = () => {
    // ▼ 実行したい操作
    const [data, setData] = useState("")

    const handleChange = (e) => {
        setData(e.target.value)
    }
    // ▲ 実行したい操作

    return (
        // ▼ 操作後のデータ
        <input onChange={handleChange} />
    )
}

export default List

ここから、Reactのコンポーネントとはfunctionであり、「操作後のデータ」として<input>、あるいは<div>などのHTMLタグをreturnしているのがわかります。

image

monotein.com/present

以上見てきたように、Reactのコンポーネントの実態はfunction、さらにReactで使うイベントもfunctionなのです。

様々なfunctionの記法を覚えることは、Reactを難しく感じる原因を取り除くいちばんの近道です。

Reactを難しく感じる理由と乗り越え方を、全体像としてまとめたガイドはこちらです▼


よくある質問

Q1. functionとイベントの記法さえ覚えれば、Reactは書けるようになりますか?

書けるようにはなりますが、それだけでは足りません。

state、props、コンポーネント設計、レンダリングの仕組みなど、Reactにはまだ理解しておきたい概念がいくつもあります。

本記事のfunctionとイベントは、それらすべてのベースになる部分だと考えてください。

ここが揺らいでいると、その先の概念も「なんとなく」の理解で終わってしまいます。

Q2. functionの書き方が複数あることに混乱します。どれを覚えればいいですか?

大切なのは「書き方が違っても働きは同じ」という知識を持っておくことです。

それがあれば、AIが書いたコードや他の人が書いたコードで見慣れない記法に出会っても、慌てずに読み解けるようになります。

Q3. functionとイベントの次は、何を体系的に学べばいいですか?

state、props、コンポーネント設計といったReactの中心となる概念です。

これらを断片的に一つずつ調べながら学ぶよりも、正しい順番で一本につなげて学んだ方が、結果的に早く「なんとなく」から抜け出せます。

Q4. 「なんとなく書ける」から抜け出したいのですが、進め方が分かりません

「なんとなく」から抜け出すには、どこを埋めればいいかを見極めることが近道です。

今の状況を教えていただければ、次に何をすればいいか、どう進めていけばいいかを個別にお答えします。

下のフォームからご連絡ください。

三好アキが直接、目を通してお返事します(無料)。

学習のお悩み相談

プログラミング学習で今つまずいていること、困っていること......あなたの状況に合ったアドバイスを無料でご提供します。

Q1. 現在の状況(ひとつ選択)必須
Q2. いちばん困っていること(ひとつだけ選択)必須
Q3. これまでの学習手段(あてはまるものすべて選択)
Q4. 無料相談を希望しますか?
Q5. 自由記述(任意)

ご相談への返事をお送りするために使用します。こちらから営業メールや勧誘をお送りすることはありません。