注目が集まるフレームワーク『Svelte』を v2 から利用しており、 v3 も長らく利用しているという @miyoshi に、概要と所感を共有してもらいました。
@miyoshi による Svelte ドキュメントの日本語訳はこちら
概要
- JSフレームワーク(コンパイラ)
- 海外ではソコソコ知名度がある(2019年の stateOfJs でも評価が高い) https://2019.stateofjs.com/front-end-frameworks/
React
などと違って、JSを変換して吐き出してくれるタイプのフレームワーク- コンセプトとしては
Riot
が近い https://riot.js.org/ja/ - コンパイラなので必要ない機能などが生成したJSに含まれないのが最大のメリット
- コンパイラであるため、
WebComponent
として出力することも可能 SSR
も可能IE9
対応も可能 -legacy
コンパイルオプション- 仮想DOMではない
- 双方向バインディングもできる
TypeScript
も使えるようになった
Svelte のメリットとデメリット
メリット
- 生成されるJSの容量が小さい
- 小さい
SPA
なら 2-30KB 程度
- 小さい
- 習得が比較的容易
Vue.js
やRiot
など他のフレームワークの経験がある場合
Store
がビルトインされている- 依存が何もないので環境の立ち上げが楽
- ボイラープレートコードがほぼない
- コンパイラなのでコンパイル時のエラーである程度のミスを防げる
デメリット
- 開発環境が貧弱
React
におけるreact-dev-tool
みたいなものがない
- ランタイムのエラーが分かりにくい
- そもそも
JS
のエラーが分かりにくい
- そもそも
- 日本語の情報が少ない(ほぼない)
- 日本語だから少ないというわけでもなく英語でも少ない
- コードの書き方に制約があまりないので、共同作業する際にはルールが必要
- 採用実績はソコソコあるが、大手や日本での採用実績はあまりない
- LINE では使われている
総論
- おそらくコード量が少ないことによる恩恵を重要視しているフレームワーク
- 「詰まる」とかなりキツいので、ある程度
JS
に慣れてる人向け - 開発環境が整ったり、コミュニティが大きくなれば使用人口は一気に増えそう
- まだ出てから2年も経っていないので、これからに期待
Refs
- LINE 新卒採用 2022
- キャリア採用はこちらから
- BGM&SE
- 魔王魂/騒音のない世界/OtoLogic