ぶうううん's Cafe

どうにかこうにか。備忘録に近い。

Svelteについて調べてみた。

Svelteとは

 Webアプリケーションフレームワークの1つ。ただ、公式HPではSvelteはコンパイラ [1]という記述もあり、従来のWebフレームワークとは異なる軸を持っているように思える。

Svelteの特徴

  • テンプレート関連
    • ボイラープレートの無いコンポーネントを作成できる。
      • そもそもボイラープレートとはなんぞやというと、プログラム上で重複する定型文的なコードのこと。Create React Appなどで作成するテンプレートも当てはまるはず。
      • SvelteはReactやVueよりも少ないコード量で同等の実装を行うことが可能。 -コンポーネント関連
    • トップレベル要素を複数記述できる。
    • stateの更新には代入演算子を使う。
      • useStateといったhookを利用する必要はなく、通常の変数のように値の更新ができる。
  • レンダリング関連
    • 仮想DOMを使わない。
      • 多分一番の特徴。
      • 仮想DOMはイベントドリブンなUI開発を達成するために利用されるが、イベントドリブンなUI開発は必ずしも仮想DOMを必要としない。Svelteでは仮想DOMを使わないことで、より高速なレンダリングを目指している。
  • 状態管理ライブラリを必要としない。
    • Reduxなどを必要としないという意味だと思うが、詳細な説明が書いてなかったので追って調査したい。

個人的な感想

 Reactを使っていて無駄にdivや<>が増えてしまうという経験があるので、トップレベル要素を複数記述できるのは、コンポーネントをもう少し柔軟に書くことができそうで地味に嬉しい。
 仮想DOMを使わないのは素のJSに近づくということで、仮想DOMを利用することが当たり前の今となっては少し抵抗がある。自分がこれまで経験した開発では仮想DOMが原因で遅くなるということはあまり起きていない(ただ、これは自分の経験が浅いからだと思う)。今すぐReactやVueといった仮想DOMを利用するWebアプリケーションフレームワークが消えるわけではないと思うが、仮想DOMを利用しない流れが増すとは思われる。

References