1. ホーム
  2. reactjs

[解決済み] ReactのAPIは小さいのに、なぜファイルサイズがこんなに大きいのか?

2023-04-04 19:54:11

疑問点

以下は数字です。

  • min+gzip 26k
  • gzip 90k
  • オリジナル 450+k

そして、Reactはドキュメントにあまり特徴が書かれていません。なぜこんなに大きいのでしょうか?

軽量DOMの実装のような気がしている。でも、確かめたいんです。

どうすれば解決するのか?

React はかなり多くのことをします! React の最大の目立たない部分は、おそらくイベント システムです。React は独自のイベント ディスパッチとバブリングを実装するだけでなく、ブラウザ間で共通のイベントを正規化して、それについてそれほど心配する必要がないようにしています。たとえば SelectEventPlugin は組み込みのイベント "プラグイン"であり、このプラグインは onSelect イベントを提供するプラグインです。

仮想 DOM の実装にもそれなりのコード量が必要です。多くの労力がパフォーマンスの最適化に費やされており、そのため最小化されていないバージョンには ReactPerf これはレンダリング性能を測定するためのツールです。DOM を更新する際に、React は入力の選択を維持したり、現在のスクロール位置を同じに保つなど、便利なこともしてくれます。

Reactは他にもいくつかのトリックを持っています。最もクールなものの1つは、ブラウザ環境がなくてもコンポーネントをHTML文字列にレンダリングすることを完全にサポートしているので、JSがロードされる前でも動作するページを送信することができることです。


Reactは何と比較しているのですか? react-15.0.2.min.js43k (gzipped) であるのに対し、jQueryは33k ember-2.6.0.prod.js363k (also gzipped) . もちろん、これらのフレームワークはまったく同じことをするわけではありませんが、多くの重複があるので、この比較は妥当だと思います。

ダウンロード サイズについて心配しているのであれば、JS コードがそれに寄与していることをあまり気にしないことにします。これは、私が今、Stack Overflow ページの右側に表示されている広告です。

そのダウンロード サイズは 95k -- 私なら、そのような画像をページに含めることは考えません。なぜなら (たとえ私がパフォーマンスを心配していたとしても) 通常、パフォーマンスに関する他の多くの修正すべき事柄があり、そちらの方がより有利だからです。


要するに、私はReactがそれほど大きなものだとは思っていません。React のコードが小さいはずだという理由として、React の小さな API を挙げていますが、より良い質問は、「React の API は、それがあなたのために行うすべてのことを考えると、なぜそれほど単純であることができるのか」でしょう。

...でも、これはまったく別の質問です :) あなたの質問に答えられたらいいのですが、もし答えられなかったら、喜んで拡大します。