この記事では、2つのリアクティブUIフレームワークであるReactとSvelteを、さまざまな実践的な例を通じて比較します。Reactは仮想DOMを使用し、ランタイムが必要となるため、コードサイズがSvelteよりも大きくなります。一方、Svelteはビルドプロセス中にコードをコンパイルするため、バンドルサイズが小さくなり、ランタイムは必要ありません。Reactは状態管理に`useState`を使用しますが、Svelteはリアクティブ変数に`let`宣言を使用します。Reactはプロパティを関数パラメータとして渡しますが、Svelteは`export`キーワードを使用します。Reactは子コンポーネントに`props.children`を使用しますが、Svelteはスロットを使用します。ライフサイクルメソッドはReactでは`useEffect`でシミュレートされますが、Svelteでは直接インポートされます。副作用はReactでは`useEffect`で管理され、明示的な依存宣言が必要ですが、Svelteでは `$` 記号を使用したリアクティブ式で管理されます。Reactは計算されたプロパティに`useMemo`を使用しますが、Svelteは `$` 式を使用します。Reactは条件付きレンダリングに三項演算子を使用しますが、Svelteはテンプレートのような構文を使用します。最後に、Reactはグローバル状態管理に`createContext`と`useContext`を使用しますが、Svelteはより簡潔な構文で書き込み可能なストアを使用します。
dev.to
Svelte vs React: Core Feature Comparison
