ITエンジニア日記 ~NO SKILL, NO LIFE~

学んだ技術や、気になることをアウトプットしていきます。プログラミング, インフラ, etc...

React の勉強会に行ってきた

Reactの勉強会に参加してきたので、勉強してきたことをまとめてみました。まだまだ理解が追い付いていないところがあるので、間違っているところまあるかもしれませんが、ご容赦ください<( *)>

1. Reactとは

FacebookOSSで公開している、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にアップロードしてあります。

github.com

コンポーネント、props、stateをそれぞれ使用しています。

6. まとめ

React勉強会で勉強してきたことをまとめてみました。React初心者ということで、まだまだ理解ができていないとこもあります。今回の勉強会を機に、これから少しずつ勉強をしていこうと思います。