1. Declarative(宣言的)
- 宣言型プログラミング(Declarative Programming)
<Greets name="Patty" times={4} />
- 『どんなデータが表示されるべきか』を記述しておくだけでReact がそこにそのデータを
表示し、適切なタイミングで適切な表示に更新してくれる
- 宣言型プログラミングのパラダイムはより大きな概念として、
その中に関数型プログラミングを含んでる
- 関数型プログラミングは参照透過性を担保する
- 参照透過性 : 同じ入力に対しては必ず同じ出力が得られること
2. Component-Based(コンポーネントベース)
- Just The UI(UI にしか関知しない)
コンポーネントベースのアーキテクチャ
- 見た目と機能がカプセル化されたコンポーネントというアプリケーションの部品を作成し、
それらを組み合わせることで複雑なUI を構築するという設計思想のこと
MVCの概念は必要ないのか?
⇒ フレームワークが提示するmodel やview model の概念およびそのためのAPI の存在は、
コンポーネントの切り分けを適切に行うのに邪魔
Just The UI について
- フルスタックのフレームワークではないということ
- React は初期からずっと自身を『A JavaScript library for building user interfaces
(UI を構築するためのJavaScript ライブラリ)』だと言い続けてる
- 変化の早い世界ではワンストップであることは技術の進歩の妨げになる
- フルスタックのフレームワークでないことが逆にReact の強みになってる
4. Virtual DOM (仮想DOM)
<aside>
💡 インメモリに保持された想像上のまたは「仮想の」UI 表現が、
ReactDOM のようなライブラリによって「実際の」DOM と同期される
というプログラミング上の概念
</aside>
変換まえの要素ツリーがメモリ上にキャッシュされ、