technikki

適当に技術系を書きます

Reactについて少し調べる

はじめに

Reactって何となく記法は見たことあるけど、使ってないし全体像が掴めてない。
create-react-appを念頭に基本を調べてメモ。

index

サンプルサイトを見てみると、どうやらindex.jsには以下しか書かれていない。

ReactDOM.render(<App />, document.getElementById("root"))

Example Projects – React.

ReactDOMってなんや?
コンポーネントを画面に表示させるためのなにがしっぽい。
で、アプリに一回出せるrender()でコンポーネント指定して描画する感覚か。 要素のレンダー – React
DOMというのがJS→HTMLへの変換うんぬんのことらしい。
【初心者向け】DOM(ドム)とは?わかりやすく解説 | ホームページ制作・作成代行ならAMS

そしてどうやら、最近ReactDOM.render→createRootを使うよう置き換わったらしい。
React18からはレンダリングにcreateRootを使おう

create-react-appで作られる雛形はcreateRootなので、そっとそのままにしておく。

Appコンポーネント

慣習的にindexでrenderされるtopコンポーネントっぽい。
他のコンポーネントを対象として、Importして画面に並べたり、変数入れたりという感じ。
複数ページあるサイトを作る場合、ここでルートからのパスとコンポーネントを紐づけるっぽい。
RecipeFinder/App.js at master · devmahmud/RecipeFinder · GitHub
create-react-appはSPA。

Reactでシングルページアプリケーションを書こう | IIJ Bootcamp

Hooks

indexのところでもだけど、クラス→関数に置き換わる動向。
クラスより関数の方がわかりやすいよね、みたいな個人的解釈。 フックの導入 – React
で、便利な関数群がHooksというらしい。
普通renderすると変数の状態が消えちゃうけどHooks使うと保持できるよ、というイメージ。
【初心者向け】 React Hooks とは?その特徴・使い方…|Udemy メディア

コード例

CSS適用

色々方法があるらしい。
React開発を行う際のcss設計方法について | masayanblog
個人的にわかりやすいので、とりあえずはcss modulesでいいかな。
将来的に非推奨になる可能性があるみたいだけど。

おまけyarn

ローカルで追加のパッケージがあった場合、DockerではModule not foundとなった。
yarnってコピペで使っててよく知らなかったけど、Facebook製のパッケージマネージャーなのね。
yarn実行でpackage.json更新。

パッケージマネージャー「Yarn」の使い方 - わくわくBank

その他参考文献