Reactの学習記録的な感じで書いてみます!
はじめに:Reactの勉強、はじめてみたけど…
「今どきのWebサイトを作れるようになりたい!」と思ってReactの勉強を始めたみなさん。
こんにちは!(私だけ?w)
…ところで、始めてみてどうですか?
なんだかよくわからないし、色々ルールがあって「うわーっ!」ってなってませんか?
わかります。私も最初はそうでした。
でも大丈夫!実は、まず基本の3つだけ分かれば、Reactがぐっと身近になって、一気に見通しが良くなるはずです!(たぶん)
今日はその3つのポイントを、一緒に見ていきましょう!
その1:Webページは「レゴブロック」の集まり!
Reactのいちばん大事な考え方は、Webページを**「コンポーネント」**っていう「部品」に分けて作ることです。
ヘッダー、フッター、サイドバー、記事のカード…みたいに、ページを構成するパーツを、ぜんぶ別々のブロックとして作ります。そして最後に、そのブロックたちを「ガチャンコ!」と合体させて、一つのページを完成させるイメージです。
これ、すごく便利だと思いませんか?
だって、一度作った「記事カード」ブロックは、色々なページで使い回せますよね。それに、もしデザインを直したくなっても、そのブロックだけを修正すればOKなんです。
// 「ようこそ!」って表示するだけのレゴブロック(コンポーネント)
function WelcomeMessage() {
return <h1>ようこそ!</h1>;
}
その2:HTMLっぽく書ける「JSX」が超便利!
じゃあ、そのブロック(コンポーネント)の見た目はどうやって作るの?
それが、**「JSX」**っていう書き方です。
これは、HTMLとJavaScriptの"いいとこ取り"みたいなやつで、HTMLを書く感覚で、見た目を作ることができます。
しかも、{}を使えば、その中にJavaScriptの変数を「ひょいっ」と埋め込めるんです。
見た目(HTML)とデータ(JavaScript)を一緒に書けるから、コードがすごく分かりやすくなります。
const userName = "hogeさん";
function Greeting() {
// HTMLの中に、{userName}っていう変数を埋め込んでる!
return <div>こんにちは、{userName}!</div>;
}
ひとつだけ注意!
HTMLでclass="hoge"って書くところ、JSXではclassName="hoge"って書きます。これだけは「そういうルールなんだな」って覚えてあげてください!(適当)
その3:Reactが"動く"仕組み:「State」と「Props」
さて、いよいよReactの本質の部分です。クリックしたら表示が変わったり、動的なページを作ったりするにはどうすればいいんでしょう?
そのカギを握るのが 「State」と「Props」 です。
State:見た目をガラッと変える方法
Stateは、そのコンポーネントが持ってる「状態」や「データ」のこと。
そして、Reactのいちばん面白いところがこのStateなんです!
ただの変数と違って、Stateの値が変わると、画面も勝手に「ささっ!」と更新してくれるんです。
Stateを使うには、useStateっていうのを使います。
import React, { useState } from 'react';
function Counter() {
// 「count」っていうStateを作る。最初は0。
const [count, setCount] = useState(0);
return (
<div>
<p>クリックした回数: {count}回</p>
{/* このボタンを押すと、countの値が1増えて、画面の数字も自動で変わる! */}
<button onClick={() => setCount(count + 1)}>
クリック!
</button>
</div>
);
}
Props:部品にデータを渡す"バケツリレー"
Propsは、親の部品から子の部品へデータを渡すための仕組みです。
よく「バケツリレー」に例えられるらしいです。
「はい、これ使って!」って、上から下へデータを渡す感じ。
「この部品にはこの名前を表示してね」みたいに、外から指示を出したいときに使います。
// 子部品。propsっていうバケツでデータを受け取る
function Greeting(props) {
return <p>こんにちは、{props.name}!</p>;
}
// 親部品
function App() {
return (
<div>
{/* Greeting部品に「田中さん」ってデータを渡してあげる */}
<Greeting name="田中さん" />
{/* こっちの部品には「鈴木さん」を渡す */}
<Greeting name="鈴木さん" />
</div>
);
}
まとめ:最終的に
Reactの超基本ポイントを3つ、紹介してみました。
少しReact理解できた気がしませんか?(できなかったらごめんなさい、、)
その1:コンポーネント(レゴブロックみたいに部品を作る!)
その2:JSX(HTMLっぽく書ける便利なやつ!)
その3:StateとProps(画面を動かす言葉と、データを渡すバケツリレー!)
この3つがなんとなく分かれば、他の人が書いたコードやチュートリアルが、「あ、これやったやつだ!」みたいに読めるようになってきますよ!
私もまだまだ勉強中ですので、もしつまずいたらまたこの記事を見に来てくださいね!
一緒に頑張っていきましょう!
Discussion