フレームワークを整える
初級フレームワークの選び方を整える。
= React か Vue かで迷ったときの「こんな時はコレ」を、5つの質問と比較表で
① 5つの質問に答える
すべて選ぶと、下に候補(JS系2本+CSS系1本)が出ます。回答はこの端末内だけで処理します(送信ゼロ)。
① 何を作りますか?
② チームと情報
③ 既存の技術
④ 重視するもの
⑤ CSS
② こんな時は、こう考える
よくある場面ごとの早見です。事実(実装方式・配布サイズ・SSRの有無など)に基づく傾向であり、断定ではありません。
既存のjQueryサイトに少しだけ動きを足したい
→ Alpine.js
HTML属性に振る舞いを書くだけで、ビルド環境を用意せず導入できます。
求人と日本語情報の多さで選びたい
→ React
当サイトの目安で求人・情報量が最も多い分野です。
1人で早く形にしたい
→ Vue
テンプレート構文がHTMLに近く、学習コストが低めです。
配布サイズを最小にしたい
→ Svelte か Preact
Svelteはコンパイル時にランタイムが消え、Preactは約4KBの軽量なReact互換ライブラリです。
Web Componentsとして他フレームワークと混ぜたい
→ Lit
ブラウザ標準のCustom Elementsの上に薄い層を重ねる方式です。
SEOを重視したWebサイトを作りたい
→ Next.js・Nuxt・SvelteKitのあるもの
React(Next.js)・Vue(Nuxt)・Svelte(SvelteKit)にはSSR向けのメタフレームワークがあります。
ビルド環境を用意せず<script>タグ1本で使いたい
→ jQuery か Alpine.js
どちらもCDN読み込みだけで動く方式です。
学習コストを最優先に抑えたい
→ jQuery・Alpine.js・Bootstrap
当サイトの目安で学習コスト1(最も易しい)の3本です。
大きめのチーム開発・長期保守を見込む
→ React か Vue
エコシステムの広さ・採用実績が当サイトの目安で上位です。
ReactのAPIのまま配布サイズだけ減らしたい
→ Preact
React互換のAPI(useState等)を、より小さい配布サイズで提供します。
独自デザインを自分で細かく組みたい
→ Tailwind CSS
ユーティリティクラスの組み合わせで、既製部品に縛られずスタイリングできます。
ボタンやモーダルをすぐ整えたい
→ Bootstrap
部品単位で用意されたクラスをそのまま使えます。
③ 9本の横断比較表
誕生年・主体・実装方式・配布サイズ・学習コスト・エコシステム・求人情報・SSRの有無・一言でまとめました。
| 名前 | 誕生年 | 作者・主体 | 種類 | サイズ帯 | 学習コスト | エコシステム | 求人情報 | SSR | 一言 | ④ 練習場 |
|---|---|---|---|---|---|---|---|---|---|---|
| React | 2013 | Meta(2013) | 仮想DOM | 中 | 3 / 5 | 5 / 5 | 5 / 5 | Next.js | 仮想DOMでUIを組み立てる、最も採用例と日本語情報が多いライブラリ。 | 試す → |
| Vue | 2014 | Evan You(2014) | 仮想DOM | 小 | 2 / 5 | 4 / 5 | 4 / 5 | Nuxt | テンプレート構文がHTMLに近く、1人・少人数での立ち上げが速い。 | 試す → |
| Svelte | 2016 | Rich Harris(2016) | コンパイラ | 小 | 2 / 5 | 3 / 5 | 2 / 5 | SvelteKit | ビルド時にコンパイルしてランタイムを持たない、軽さ最優先の選択肢。 | 試す → |
| jQuery | 2006 | John Resig(2006) | DOM操作ライブラリ | 中 | 1 / 5 | 3 / 5 | 4 / 5 | なし | $()で実DOMを直接操作する、ビルド不要・最速で書き始められるライブラリ。 | 試す → |
| Alpine.js | 2019 | Caleb Porzio(2019) | 属性ベース | 小 | 1 / 5 | 2 / 5 | 2 / 5 | なし | HTML属性に振る舞いを書くだけの、既存ページへの「一振りかけ」ライブラリ。 | 試す → |
| Lit | 2019 | Google(2019・Polymerの後継) | Web Components | 小 | 3 / 5 | 2 / 5 | 1 / 5 | なし | ブラウザ標準のWeb Componentsとして書く、フレームワークを問わず混ぜられる部品。 | 試す → |
| Preact | 2015 | Jason Miller(2015) | 仮想DOM | 小 | 3 / 5 | 3 / 5 | 2 / 5 | Fresh | React互換のAPIを、はるかに小さい配布サイズで動かす軽量版。 | 試す → |
| Tailwind CSS | 2017 | Tailwind Labs(2017) | ユーティリティCSS | 中 | 2 / 5 | 5 / 5 | 4 / 5 | なし | 色・余白・配置などをユーティリティクラスの組み合わせで組み立てるCSS。 | 試す → |
| Bootstrap | 2011 | Twitter発(2011) | 部品CSS | 中 | 1 / 5 | 5 / 5 | 5 / 5 | なし | ボタンやモーダル等、部品単位で用意されたクラスをそのまま使うCSS。 | 試す → |
⚠️ learning(学習コスト)・ecosystem(エコシステムの広さ)・jobs(求人・日本語情報量)の数値は、当サイトが掲載する9本の中での相対的な目安です。公的な調査や第三者機関の評価ではなく、当サイトの独自判断です。size(配布サイズ)も同様に「small/medium/large」の帯で示すおおよその目安で、実際の数値(bundlephobia等)は変わることがあります。 このページは優劣を断定するものではなく、「向いている場面/向かない場面」を事実ベースで整理したものです。5問の回答はこの端末内だけで処理し、外部へは送信しません(送信ゼロ)。
このツールについて
「React か Vue かで迷う」——そんなときに、優劣の断定ではなく「こんな時はこっちが向いている」を、誕生年・実装方式・学習コスト・エコシステム・求人情報などの事実から並べます。5問に答えると上位の候補が出ます。各候補は /react/ 等の練習場でそのまま試せます。
「React か Vue か迷う」を、誕生年・実装方式・配布サイズ・学習コスト・求人情報・SSR の有無で整理。5問に答えると根拠つきで上位候補(JS 2本+CSS 1本)が出ます。各候補は練習場へそのままリンク。
主な機能
- JS 系7本(React/Vue/Svelte/jQuery/Alpine.js/Lit/Preact)と CSS 系2本(Tailwind/Bootstrap)を横断比較
- 5問の診断で根拠つきの上位候補(JS 2本+CSS 1本)を提案
- 「こんな時はコレ」の定型カード12枚
- 各練習場ページにも「向いている場面/向かない場面」の枠を表示
- 優劣を断定せず向き不向きを整理・数値は当サイトの目安と明記・送信ゼロ
よくある質問
Q. React と Vue は結局どちらがよいのですか?
A. 優劣は断定していません。求人や日本語情報の多さを重視するなら React、1人で早く形にするなら学習コストの目安で Vue が有利、といった場面ごとの向き不向きを5問の診断と比較表で示しています。
Q. 学習コストやエコシステムの数値は公的な調査データですか?
A. いいえ。当サイトが掲載する9本の中での相対的な目安で、独自の判断です(ページ下部に明記しています)。誕生年・作者・実装方式・SSR の有無は各プロジェクトの公知の事実です。
Q. Preact と Bootstrap のリンク先が React と Tailwind のページなのはなぜですか?
A. それぞれ React 練習場・Tailwind 練習場の中のタブとして実装しているためです。リンク先のタブに移動してから試せます。
入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。