Reactをはじめる

はじめに

  • JavaScript 界隈って動きが早くってどんどん新しいものが出現します。この記事で紹介するのは、JavaScript で見た目の部分を作る JavaScript の UI ライブラリ「React」を紹介します。上澄みだけをざっくり説明させてもらいます。
  • 有名どこだと、React、Angular、Vue などがあります。私は Angular2 の経験が少しだけあるのですが、React については初心者です。これから独習で React を習得する予定です。

React とは

A JavaScript library for building user interfaces

React を簡単に説明すると

  • UI を作るための JavaScript ライブラリ
  • Facebook がつくってる
  • API もそんなに多くない
  • ページ状態を保持
  • コンポーネットっていうのがある
  • 仮想 DOM と呼ばれる DOM の設計図がある
  • 仮想 DOM(DOM の設計図)から本物の DOM を作る

コンポーネット

  • 見た目と機能をひとまとまりにしたものをコンポーネントと呼びます。
  • Web の UI はコンポーネントのツリー構造と捉えることが可能です。コンポーネントには親子関係があります。その大元は Web ページ全体

2019-02-11 16 05 01

仮想 DOM

  • React はゼロから DOM を毎回作り直すのではありません。画面を更新する際、React は新旧の設計図を見比べて差分を計算し、パッチ的に DOM 操作を適用します。

まずブラウザのレンダリングの仕組み(ブラウザへ描画するまでの処理)

2019-02-11 16 03 08

  • レイアウト(Layout)、ペイント(Paint)はブラウザにとって負荷の高い処理らしいです。

仮想 DOM

  • DOM(Document Object Model)の略
  • 仮想 DOM(Virtual DOM)は、ブラウザが保持している DOM とは別で React 内で仮想の DOM を管理しているのです。

2019-02-11 16 03 31

React 内で変更

  • React では 本物の DOM と対構造となってる仮想 DOM を定義してます。

  • 本物 DOM と切り離されているので、なにかアクションあるとまず仮想 DOM をにいろいろ変更を加えます。

差分抽出

  • 仮想 DOM を変更したときの差分を抽出する

再描画

  • 差分抽出

  • 私にはスキルがないため、したことありまえんが、DOM 操作のパフォーマンスチューニングは人の手によって行っていたが、骨が折れる作業です。しかし、React を使うことにより、 DOM 操作をチューニングがとても簡単になります。場合によっては、React を使ってても親子関係を見直したりある程度チューニングをする必要があります。ですが一からやるより、かなり楽になります。