Open3
Svelteに入門した
- svelteとかsolidjsに入門してReactやVueと使い勝手を比較したいので、まずはsvelteに入門する
- とりあえず下記のようなド定番のTwitterライクアプリ作る
- ベースとしてははじめてのSvelte - 基礎から応用まで | www.twilio.comを参考にした
- ↑から改造する点は下記
- 上記のサイトで利用されているベースのリポジトリが『
npm init vite
からsvelte
を選んでね!』と記載しているので、npm init vite
を利用。道中でts
利用できたので、ts化 - ついでにscss化。
npm init vite
を利用したものはscssを利用するためのベースが整っているので、styleタグにlang="scss"
を付与するだけ - あとは黙々実装するだけ
- 上記のサイトで利用されているベースのリポジトリが『
- とりあえず成果のgithub: https://github.com/thetalemon/prac-fe-fw/tree/main/svelte
- Vueのようにscript(js), htmlテンプレート, cssを1ファイルにいれる形式だが、Vueより圧倒的にシンプル
- HTMLテンプレート部分の書き方もシンプル。if文がタグに依存しない / ifの中が1タグ縛りがないので、無駄なtemplateタグや
<></>
を使わなくていいのが良い。 - scriptはletで定義して関数で上書きするとリアクティブになるというシンプルさ
- storeの召喚も
svelte/store
で定義して普通にimport { variableName } from "./../store";
で呼び出して$variableNameで呼び出して直接変数みたいに再代入ができるシンプル仕様- storeの配列をコンポーネント側で
$storeArray[i].text = newText
で書き換えできる。
- storeの配列をコンポーネント側で
- storeの召喚も
- React/Vueに比べて圧倒的にシンプル
- 参考時のSvelteを使うメリットで記載されてる『真のリアクティブシステム』や『記述するコードを少なくできる』は、ちょっと試しただけでも実感ができて、『おおお…!』と思わせるものがある。
- 個人的には再代入をすることになるところに不安を感じるが、再代入というよりはsetがお手軽になってるだけという説はあるので、案外コレでいいのかもしれない…という気はしつつある。
- シンプルさが圧倒的なので最近のフロントエンドフレームワークに対する認識とお気持ちの整理 - console.lealog();で『いまフロントエンドやるなら最初に覚えるべき!』にSvelteがチョイスされているのは非常にわかる
- バニラからはじめた人がVue.jsで折れがちなポイントである双方向バインディングがうまくシンプルになっているのがポイント高い
- Reactは個人的にはサーバサイド出身の人がフロントエンド転向する時の言語だと思っているので好きではあるがバニラフロントエンドをはじめた人の次のステップとしてのフレームワークじゃないよな…と思ってる。
- TODO
- storeに対してTypeScriptの型がどこまで効くか
- propsらへん