
このような疑問をお持ちの方に向けて書いています。
ここでは、React(TypeScript)の基本的な部分を学習していきます。
この記事で理解できる点は、以下になります。
- TypeScriptの基本
- Reactの基本
▼ES6(ES2015)あたりも事前に理解しておくといいです。
この記事は個人開発の備忘録となっています。
React前に理解するTypeScriptの基本

フロントのフレームワークが流行りTypeScriptが採用されることで、注目されています。
ここではReactをTypeScriptで書く前に必要な点をまとめておきます。
TypeScriptとは
TypeScriptはMicrosoft社によって作られたプログラム言語です。TypeScripはコンパイルするとJavaScriptのコードに変換されるという特徴があります。
TypeScriptとJavaScriptの違い
大きな違いは、型に関する部分です。
- JavaScriptは動的型付け言語
- TypeScriptは静的型付け言語
JavaScriptのような動的型付け言語は
PHP, Ruby, Pythonなど
TypeScriptのような静的型付け言語は
Java, Go, C#, C++など
TypeScriptの使用される型
TypeScriptは明示的に型を指定する静的型付け言語です。指定する型には次のようなものがあります。
| 数値 | number |
| 文字列 | string |
| 真偽値 | boolean |
| オブジェクト | object |
| すべて | any |
実際にTypeScriptでどのように使われるのか、例を書きます。
数値
const num: number = 2
文字列
const str: string = '文字列'
真偽値
const bool: boolean = false
オブジェクト
const obj: object = {id: 1, name: 'めがね'}
すべて
let all: any = 2
all = '2'
all = false
all = {id: 2, name: 'めがね'}
React(TypeScript)でTSXにデータの表示をする

TyepScriptを使いながらReactのトップページをカスタマイズしてみます。
Reactでは、最初にsrc/index.tsxが読み込まれますが、その中でApp.tsxが読み込まれていて、
変数の表示には波括弧{}を使います。
function App() {
const num: number = 1
const str: string = 'めがね'
return (
<div>
<p>{ num }</p>
<p>{ str }</p>
</div>
)
}
React Hooks(フック)の種類

React Hooks(フック)はReact16.8から追加された新機能。
React Hooks(フック)とは
Reactの公式ではクラスコンポーネントよりも関数コンポーネントを使うことをすすめています。
フックとは、関数コンポーネントに state やライフサイクルといった React の機能を “接続する (hook into)” ための関数です。フックは React をクラスなしに使うための機能ですので、クラス内では機能しません。今すぐに既存のコンポーネントを書き換えることはお勧めしませんが、新しく書くコンポーネントで使いたければフックを利用し始めることができます。
引用元: React公式
React Hooks(フック)は10種類
準備されているReact Hooks(フック)は10種類です。最初からすべて理解しなくても、使いながら学ぶでOKですね。
フックは全部useなんちゃらという形になっていますね。
基本のフックは3種類
- useState
- useEffect
- useContext
追加のフックは7種類
- useReducer
- useCallback
- useMemo
- useRef
- useImperativeHandle
- useLayoutEffect
- useDebugValue
覚えておく3つのフック
初心者は3つのフックを理解して、後は慣れてから使うで問題なし。
useState
useStateは状態を管理、更新できるフック
const [state, setState] = useState(initialState); // state: 状態を管理する変数 // setState: 状態を変更・更新をする関数 // useState(initialState): 分割代入する(イメージ)、initialStateは初期値
useEffect
useEffectは、レンダリングの後に処理を動作させることができるフックです。
useEffect(didUpdate);
// didUpdate: useEffect に渡された関数(didUpdate)はレンダーの結果が画面に反映された後に動作
useEffect(
() => {
const subscription = props.source.subscribe();
return () => {
subscription.unsubscribe();
};
},
[],
);
// 第二引数に空の配列を渡すと、初回のみ実行
useEffect(
() => {
const subscription = props.source.subscribe();
return () => {
subscription.unsubscribe();
};
},
[props.sourc],
);
// 第二引数に引数が変更されると、毎回実行
useContext
親コンポーネントから子コンポーネント、さらに孫コンポーネントとデータを渡す場合はpropsを何度も使い、コードが複雑になります。
useContextを使うことでデータを共有することができ、簡単に孫コンポーネントにデータを渡すことができます。
親コンポーネント
const UserCount = React.createContext()
// createContext()で初期化
<UserCount.Provider value={100}>
// Providerを使い値をセット
孫コンポーネント
import { UserCount } from '../親コンポーネント'
const count = useContext(UserCount)
// useContext(UserCount)を使い孫コンポーネントで値を受け取る
まとめ
今回は、Reactの入門編についての備忘録でした。最初はこのあたりを理解して次に進む感じかと思います。
僕個人の感覚では、Reactの難易度は、Vue < React < Anglarという感じです。
フロントエンドを学習中の人は一緒に頑張りましょう。

