93
75

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Svelteを使ってみた

Last updated at Posted at 2017-02-23

JavaScriptはフレームワークについて考え直すときが来ています / Svelteを使ってみた

今回はJavaScriptのノンフレームワーク、Svelteを紹介しましょう。

また新FWかよ、もういいよ。

まあそう言わずにちょっと見てってくださいよ。
何しろあのFront-End Developer Handbook 2017でも今後伸びるって言われてますよ、これは今後も期待大ですよ!?

これまでのFWと何が違う?

JavaScriptはフレームワークについて考え直すときが来ていますになんとなく書いてあるけど、トランスパイラで変換した後のJavaScriptがフレームワークを読み込む必要がないというのが特徴です。
とりあえずHelloWorldしてみましょう。

Svelteをインストール

npm install -g svelte-cli

npmについては別記事などを参照。
最近のはWindowsでも普通に動くから楽でいいね。

ソース

index.html
<!DOCTYPE html>
<html lang="ja">
<body>
  <main></main>
  <script src="MyApp.js"></script>
  <script>
    new MyApp({
        target: document.querySelector('main'),
        data: { name: 'world' }
    });
  </script>
</body>
</html>

MyApp.svelte
<h1>Hello {{name}}!</h1>

コンパイル

cd MyApp.svelteのディレクトリ
svelte compile --format iife MyApp.svelte > MyApp.js

MyApp.jsというファイルが出力されます。

表示

index.htmlにアクセスすると、「Hello world!」が表示されるはずです。

index.htmlはMyApp.jsを呼んでるだけで、重量級のライブラリをインポートしたりといったことは全くしていません。

MyApp.jsには、MyApp.svelteのコンパイル結果が入っています。
1行だったソースが200行弱に増えているのですが、中身はcreateElementとかappendChildとかの、素のJavaScriptです。
こちらも外部ライブラリを呼び出したりはしていません。

感想

フロントエンド開発者に恩恵をもたらすというより、どちらかというと閲覧者側へのメリットが多いと感じた。
何しろ出力が素のJavaScriptだから軽い。

あとライブラリを使う場合に、jQueryを先に読み込んで次にこれを、みたいな面倒な順序を考えないでいいのは楽そう。

93
75
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
93
75

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?