React の勉強会に行ってきた
Reactの勉強会に参加してきたので、勉強してきたことをまとめてみました。まだまだ理解が追い付いていないところがあるので、間違っているところまあるかもしれませんが、ご容赦ください<( *)>
1. Reactとは
FacebookがOSSで公開している、WebのUI(ユーザーインターフェース)を作るためのJavaScriptライブラリです。
ReactはJavaScriptのフレームワークだと(勝手に)思ってたのですが、ライブラリだそうです。へ~、一つ賢くなった(o゚v゚)ノ
ライブラリだから、基本的にインポートするだけで使えるって。
2.Reactの特徴
Reactには大きな特徴が3つあります。
Just The UI
ReactはMVCモデルでいうところのViewを担うライブラリだよってこと。 つまり、アプリ全体をビジネスロジックと画面表示で分けたうちの、画面表示のほう。
Virtual DOM
シンプルなコードでパフォーマンスもよい = 設計と速度が両立するかららしい。 下の例のように画面が更新されてHTMLが変更された時を考える。
【従来(Virtual DOMを使用しない場合)】
基本的に画面が更新されたときは毎回DOMを一から作成してブラウザに描画する。
一部分が変わるだけでも、更新がかかるたびに画面全体を再描画するため遅くなる。
下の例だとHTML全体が更新される。
【Virtual DOM】
更新前後のHTMLを比較して差分を求めて、その差がある部分だけをDOMにPUSHすることで更新する。
差分しか更新しないため描画が早い。
下の例だと p タグの中だけが更新される。
<div class="hoge"> <p>Hello World!</p> </div>
↓
<div class="hoge"> <p>Hello React!</p> </div>
Data Flow
Reactではデータフローが単純・簡潔らしい。
上位のコンポーネントから下位のコンポーネントへデータが流れていくだけ。逆方向にデータが流れることはないらしい。
額方向にデータが流れていたら、それは設計ミスを疑った方がいいとのこと。
3. 覚えておきたい用語
コンポーネント
クラスや関数で定義される、Reactでの部品。コンポーネントを組み合わせて画面が作られる。
props
コンポーネントにデータを渡すもの。
親のコンポーネントから、子のコンポーネントに渡される情報。
state
データ管理用の入れ物。
stateに自身のコンポーネントで使用してる情報が保持される。
4. 開発環境
今回の勉強会では「CodeSandBox」という、ブラウザ上でReactが書けるオンラインエディタを使用しました。
CodeSandBox : https://codesandbox.io
5. 勉強会で作ったアプリ
勉強会では簡単なToDoアプリを作成しました。
エディットボックスに入力された文字列が、画面下部のToDoリストに追加されていくというアプリです。
ソースはGitHubにアップロードしてあります。
コンポーネント、props、stateをそれぞれ使用しています。
6. まとめ
React勉強会で勉強してきたことをまとめてみました。React初心者ということで、まだまだ理解ができていないとこもあります。今回の勉強会を機に、これから少しずつ勉強をしていこうと思います。