5.

JavaScript フレームワーク完全比較 — React/Vue/Angular/Svelte/Next/Astro

編集
この記事の要点
  • 主要 4 大: React (Meta) / Vue.js (Evan You) / Angular (Google) / Svelte (Rich Harris)
  • メタフレームワーク: Next.js (React) / Nuxt.js (Vue) / SvelteKit / Remix
  • 新世代: Astro (MPA / Islands) / Qwik (Resumability) / Solid.js (Signals)
  • レンダリング戦略: CSR / SSR / SSG / ISR / RSC を用途で使い分け
  • シェア順: React > Vue > Angular > Svelte。学習曲線は逆順 (Svelte が易しい)

主要フレームワーク早見表

名前開発元初版特徴用途
ReactMeta (旧 Facebook)2013仮想 DOM / コンポーネント / HooksSPA 全般 / シェア No.1
Vue.jsEvan You (個人 OSS)2014テンプレ + Composition API / 学習易SPA / 中規模プロジェクト
AngularGoogle2016 (v2+)フルスタック / TS 必須 / DIエンタープライズ大規模
SvelteRich Harris2016コンパイラ型 / 仮想 DOM 無し / バンドル小小〜中規模 / 高速
Solid.jsRyan Carniato2021Signals / React 風文法で高速パフォーマンス重視
PreactJason Miller20153KB の React 互換軽量化したいとき
LitGoogle2018Web Components ベースデザインシステム配布

メタフレームワーク (フルスタック)

名前ベース特徴
Next.jsReactSSR/SSG/ISR/RSC、App Router、Vercel
Nuxt.jsVue 3Nuxt 3 で完全リライト、Nitro エンジン
SvelteKitSvelteファイルベースルーティング、Vite ベース
RemixReactWeb Standard 重視、Loader/Action 設計
Astroマルチ (React/Vue/Svelte)MPA + Islands、デフォルト JS ゼロ
Qwik独自Resumability で初回ロード超高速
FreshPreact + DenoDeno Deploy ファースト

React の基本コード

import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);
  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>+1</button>
    </div>
  );
}

export default Counter;

Vue.js (Composition API) の基本コード

<script setup>
import { ref } from 'vue';

const count = ref(0);
const increment = () => count.value++;
</script>

<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="increment">+1</button>
  </div>
</template>

Angular の基本コード

import { Component } from '@angular/core';

@Component({
  selector: 'app-counter',
  standalone: true,
  template: `
    <p>Count: {{ count }}</p>
    <button (click)="increment()">+1</button>
  `,
})
export class CounterComponent {
  count = 0;
  increment() { this.count++; }
}

Svelte の基本コード

<script>
  let count = 0;
</script>

<p>Count: {count}</p>
<button on:click={() => count++}>+1</button>

<style>
  button { padding: 8px 16px; }
</style>

レンダリング戦略

戦略説明用途
CSR (Client Side Rendering)ブラウザで JS が DOM を組み立て管理画面、ダッシュボード
SSR (Server Side Rendering)サーバで HTML を組み立てて返すSEO 必要、動的データ
SSG (Static Site Generation)ビルド時に全 HTML 生成ブログ、ドキュメント
ISR (Incremental Static Regen)SSG + 一定時間で再生成EC、ニュースサイト
RSC (React Server Components)サーバ側コンポーネント、JS 送信せずNext.js App Router
Islands静的 HTML + 部分的にハイドレーションAstro / Fresh
Resumabilityハイドレーション不要、続行Qwik

シェアとトレンド (2026 時点)

  • React: 40%+。求人数も最多。実質デファクト
  • Vue: 15-20%。中国圏で特に強い。学習曲線が緩い
  • Angular: 10-15%。大企業 / SI 業界で安定
  • Svelte: 5-10%。「使ってみたいフレームワーク」上位常連
  • Solid / Qwik: 数%。技術愛好家層で人気

State of JS / Stack Overflow Developer Survey で毎年集計あり。

用途別おすすめ

用途おすすめ理由
SaaS / SPA 全般Next.js (React)シェア・求人・情報量で安全パイ
個人ブログ・LPAstro静的 HTML 主体で爆速 / SEO 完璧
大規模エンタープライズAngular規約強・DI・テスト・i18n フル装備
中規模・チーム新人多めNuxt (Vue)学習しやすい / テンプレ書きやすい
パフォーマンス最重視Solid / Qwik / Svelte仮想 DOM 無 or Resumability
EC・ニュース・コンテンツNext.js (ISR)頻繁更新と SEO のバランス
ドキュメント / 技術ブログAstro / VitePress / DocusaurusMDX サポート

学習曲線

易しい順: Svelte / Vue < React < Angular

  • Svelte: HTML/CSS/JS を素直に書ける感覚
  • Vue: ディレクティブ / SFC のお作法を覚えるだけ
  • React: JSX / Hooks / 状態管理エコシステム選定
  • Angular: TS / RxJS / DI / モジュール / CLI など覚える量が多い

FAQ

Q: 2026 年に新規で何を学ぶべき?
A: 仕事を取るなら React + Next.js + TypeScript。Vue や Svelte は得意な人にとって速く作れる選択肢。

Q: jQuery でいいのでは?
A: 静的サイト + 少しの動的要素なら可。SPA を組むなら状態管理が破綻するので不可。

Q: Astro と Next.js どちらを選ぶ?
A: コンテンツ中心 (ブログ / マーケサイト) → Astroアプリ中心 (ダッシュボード / EC) → Next.js。Astro は React コンポーネントも island として混在できるので、最近は「両方」も増えています。

編集
Post Share
子ページ
  1. Vue.js
  2. React
  3. Express
同階層のページ
  1. 環境構築
  2. 文法
  3. プラットフォーム
  4. ライブラリ
  5. フレームワーク
  6. テンプレートエンジン
  7. ビルトインオブジェクト
  8. エラー一覧
  9. よくある事例

最近更新/作成されたページ