何日か勉強したので
ほんとにあさーい知識ですのでご容赦ください
また僕の感じたことが中心なので内容は間違えているかもです
react とは
・生産性の高い javascript
・コンポーネントの概念が中心
・コンポーネントを組み合わせで1つのページをつくる
・非同期のSPAなページを作るのには必須
コンポーネントとは
・javascript のオブジェクト指向を強くしたイメージ
・例えば動画再生のページがあったとして
動画再生ボタンのコンポーネント
動画停止ボタンのコンポーネント
動画を映す画面のコンポーネント
など様々なコンポーネントを組み合わせで1つのページを組み立てる
・それぞれのコンポーネントは ruby のクラスのように独自性を持つ
・コンポーネントは1つ作成すれば違う箇所でも使い回せる
・例えば動画再生ボタンは違うページでも動画再生ボタンとして使える
・よって保守性が高くなる
SPAなページとは
・メインのページの中に各ページを描画するイメージ
・動画再生のホームページだったら以下みたいになる
メインページ
↳ お気に入り動画一覧を表示するコンポーネント
↳ 動画再生ページの描画をするコンポーネント
↳ おすすめ動画一覧を表示するコンポーネント
・そして URL によってどのコンポーネントを表示するかを分けている
・よって Single Page Application (SPA) と呼ばれる
非同期処理とは
・コンポーネント毎に通信をさせるイメージ
・つまりページの更新とは別のタイミングで
コンポーネントの描画が更新される
・例えば
リロード中のマウスのくるくるとか
画像表示されるまで骨組みを表示されるのとかは
非同期処理の一例
・UXが向上する
rails との連携
・rails を APIモードにするのが主流
・つまり rails にはMVCのMCに集中させる
・Vの部分を react で作る
SPA化のメリット・デメリット
・メリット
UXが向上する
フロントエンドとバックエンドの開発を分けられる
最近の主流
react のライブラリが充実している
・デメリット
学習が大変
工数が増える
途中からSPAにするとかはしにくい(これはよくわからないです)
構成によっては処理が遅くなる