Svelte
| |
開発元 | Svelte contributors |
---|---|
初版 | 2016年11月26日[1] |
最新版 | |
リポジトリ |
github |
プログラミング 言語 | JavaScript, TypeScript |
サイズ | 3.5 KB[3] |
種別 | JavaScriptフレームワーク |
ライセンス | MIT License |
公式サイト |
svelte |
Svelte(スベルト、スヴェルト、/ˈsvɛlt/[4])は、Rich Harris[5]が作成したフリーかつオープンソースなフロントエンドフレームワーク[6]、ならびに言語[7]。Svelteのコントリビューターによって保守が行われている[8]。
概要
[編集]SvelteはHTMLテンプレートを、DOMを直接操作する特殊なコードにコンパイルする。そのため、アプリケーションによってインポートされるモノリシックなJavaScriptライブラリではない。これにより、転送されるファイルのサイズが削減され、クライアントのパフォーマンスが向上する[9]。
ランタイム、すなわちブラウザで作業の大部分を実行する従来のJavaScriptフレームワーク(ReactやVueなど)とは異なり、アプリケーションコードもコンパイラによって処理され、データを自動的に再計算する呼び出しを挿入し[10]、依存するデータが変更されたときにUI要素を再レンダリングする[11]。これにより、仮想DOMなどの実行時の中間表現に関連するオーバーヘッドも回避される[12]。コンパイラ自体はTypeScriptで書かれている。そのソースコードはMITライセンスの下でライセンスされ、GitHubでホストされている[13]。
歴史
[編集]Svelteの前身は、Rich Harrisが以前に開発したRactive.jsである[14]。Svelteという名前は、The GuardianのRich Harrisと彼の同僚によって選ばれた[15]。主要な初期の功労者は、 Svelte1のリリースでConduitryに参加するようになり、2019年にTan Li Hau[5]が参加し、2020年にBen McCann[5]が参加した。Rich HarrisはフルタイムでSvelteに取り組むため[16]に、2021年にVercelに入社した[17]。
バージョン履歴
[編集]- Svelteのバージョン1はJavaScriptで記述され、2016年11月29日にリリースされた。基本的にはコンパイラを使用したRactiveだった[15]。
プログラミング方法
[編集]Svelteアプリケーションとコンポーネントは.svelte
ファイルで定義される。ファイルは、JSXに似たテンプレート構文で拡張されたHTMLファイルである。
Svelteは、JavaScriptのネイティブのラベル付きステートメント構文を転用して、$:
リアクティブステートメントをマークする[20]。トップレベルの変数はコンポーネントの状態になり、エクスポートされた変数はコンポーネントが受け取るプロパティになる。さらに、この構文は、HTML要素とコンポーネントのテンプレート化に使用できる[21]。これを以下に示す。
<script>
let count = 1;
$: doubled = count * 2;
</script>
<p>{count} * 2 = {doubled}</p>
<button on:click={() => count = count + 1}>Count</button>
関連プロジェクト
[編集]Svelte のメンテナーは、Svelteでプロジェクトをビルドする公式の方法としてSvelteKitを作成した[22]。これは、ブラウザーに送信されるコードの量を大幅に削減するNext.jsスタイルのフレームワークである。メンテナーは以前、SvelteKitの前身であるSapperを作成していた[23]。
Svelteのメンテナーは、Vite、Rollup、Webpack、TypeScript、VS Code、Google Chromeデベロッパーツール、ESLint、prettierなど、Svelte組織の下で人気のあるソフトウェアプロジェクトの統合も多数維持している[24]。Storybookなどの多くの外部プロジェクトも、SvelteおよびSvelteKitとの統合を作成した。
影響
[編集]Vue.jsは、Svelteの前身であるRactive.jsをモデルにしてAPIと単一ファイルコンポーネントをモデル化した[25]。
採用
[編集]Svelteは開発者から広く称賛されている。複数の大規模な開発者調査でトップランキングを獲得し、Stack Overflow 2021で最も愛されているWebフレームワーク[26]、および 2020 State of JSで最も満足しているフロントエンドフレームワークとして、開発者に選ばれた[27]。
Svelteは、The New York Times、Apple、Spotify、Square、Yahoo、ByteDance、楽天、Bloomberg、Reuters、イケア、Facebook、Braveなど、多くの著名なウェブ企業に採用されている[28][29][30]。
非メンテナーのコミュニティグループは、Svelte Summitカンファレンスを運営し、Svelteニュースレターを書き、Svelteポッドキャストをホストし、Svelteツール、コンポーネント、およびテンプレートのディレクトリをホストしている[31]。
脚注
[編集]- ^ “Frameworks without the framework: why didn't we think of this sooner?”. Svelte. 2019年12月20日閲覧。
- ^ https://github.com/sveltejs/svelte/releases/tag/svelte%404.2.11.
- ^ “Svelte@3.16.5”. BundlePhobia (December 19, 2019). 2019年12月20日閲覧。
- ^ “SvelteKit • Web development, streamlined” (英語). Sveltekit. 2023年10月31日閲覧。
- ^ a b c “Svelte” (英語). GitHub. 2022年11月11日閲覧。
- ^ Krill, Paul (2016年12月2日). “Slim, speedy Svelte framework puts JavaScript on a diet” (英語). InfoWorld. 2022年11月11日閲覧。
- ^ Harris, Rich (2018年11月26日). “The truth about Svelte” (英語). GitHub Gist. 2022年12月21日閲覧。
- ^ “Accelerating Svelte's Development” (2022年1月13日). 2023年12月11日閲覧。
- ^ “React vs. Svelte, the JavaScript build-time framework”. react-etc.net. 2022年11月11日閲覧。
- ^ a b Harris, Rich. “Svelte 3: Rethinking reactivity” (英語). svelte.dev. 2022年11月11日閲覧。
- ^ “Svelte 3 Front-End Framework Moves Reactivity into the JavaScript Language, Q&A with Rich Harris” (英語). InfoQ. 2022年11月11日閲覧。
- ^ Harris, Rich. “Virtual DOM is pure overhead” (英語). svelte.dev. 2022年11月11日閲覧。
- ^ sveltejs/svelte, Svelte, (2022-11-11) 2022年11月11日閲覧。
- ^ Świstak, Tomasz (2020年11月19日). “About the Svelte JavaScript framework”. ValueLogic | Blog. 2022年11月11日閲覧。
- ^ a b c (日本語) Svelte Origins: A JavaScript Documentary 2022年11月11日閲覧。
- ^ “https://twitter.com/rich_harris/status/1458822051263823875?lang=en” (英語). Twitter. 2022年11月11日閲覧。
- ^ “Vercel welcomes Rich Harris, creator of Svelte – Vercel” (英語). vercel.com. 2022年11月11日閲覧。
- ^ (日本語) Rich Harris: Futuristic Web Development 2022年11月11日閲覧。
- ^ Harris, Rich. “SvelteKit is in public beta” (英語). svelte.dev. 2022年11月11日閲覧。
- ^ “Docs • Svelte” (英語). svelte.dev. 2022年11月11日閲覧。
- ^ “Introduction / Adding data • Svelte Tutorial” (英語). svelte.dev. 2022年11月11日閲覧。
- ^ “SvelteKit • The fastest way to build Svelte apps” (英語). kit.svelte.dev. 2022年11月11日閲覧。
- ^ Harris, Rich. “Sapper: Towards the ideal web app framework” (英語). svelte.dev. 2022年11月11日閲覧。
- ^ “Svelte” (英語). GitHub. 2022年11月11日閲覧。
- ^ Świstak, Tomasz (2020年11月19日). “About the Svelte JavaScript framework”. ValueLogic | Blog. 2022年11月11日閲覧。
- ^ “Stack Overflow Developer Survey 2021” (英語). Stack Overflow. 2022年11月11日閲覧。
- ^ “State of JS 2020: Front-end Frameworks” (英語). 2020.stateofjs.com. 2022年11月11日閲覧。
- ^ “Svelte • Cybernetically enhanced web apps” (英語). svelte.dev. 2022年11月11日閲覧。
- ^ “Websites using Svelte - Wappalyzer”. www.wappalyzer.com. 2022年11月11日閲覧。
- ^ “Your Profile, Your Home Experience” (英語). yourhome.fb.com. 2022年11月11日閲覧。
- ^ “Home” (英語). Svelte Society. 2022年11月11日閲覧。