See how Stencil fits into the entire Ionic Ecosystem ->
Stencil is part of the Ionic Ecosystem ->

Stencilの目的と目標

Stencilは、人気の高いフロントエンドフレームワークのコンセプトを、ランタイムツールではなくコンパイルツールに統合することを目指しています。Stencilの目標は「フレームワーク」になることではありません。Stencilの目標は、ブラウザーで実行する時にWeb標準を使用しながら、フレームワークに期待されるような、優れた開発体験とツールを提供することです。多くの場合、Stencilは従来のフロントエンドフレームワークの代替として使用することができます。しかし、必ずそのように使用する必要はありません。

Web標準

Stencilによって生成されるコンポーネントは、最終的に標準Web技術を利用したWebコンポーネントです。そのため、あらゆる主要なフレームワーク、または、フレームワークなしでも動作します。さらに、Stencilは、ES ModulesとDynamic Importによって、従来のバンドラーや、不必要なランタイムの読み込みを置き換えています。開発者は、Web標準を使用することで、変化し続けるJSフレームワークではなく、Web標準を学習しながら利用することができます。

自動最適化

コンポーネントや、Webサイトのパフォーマンスを向上させるために、開発者がしなければならない最適化や、微調整は数え切れないほどあります。Stencilのコンパイラを使用すると、最適化されたコンポーネントを生成することができます。

Future-Friendly

ソフトウェア開発の世界が進化し続ける中、コンパイラも進化し続けています。コンパイラは、コンポーネントの完全な書き換えの代わりに、標準のコンポーネント・モデルを共通の入力として使用して、最適化を継続的に行うことができます。コンパイラを使用することで、開発者は、将来的に使いやすいコンポーネントを、作成することができます。また、何度もやり直すことなく最新の最適化を行うことができます。さらに、APIに何か変更があった場合、コンパイラは自動的に調整を行い、更新する必要があるものを正確に開発者に通知することができます。

ランタイムパフォーマンス

Stencilを実行するために、JavaScriptのランタイムは必要ありません。Stencilは、Web標準のAPIを使用しております。これらのAPIは、カスタム要素を含みます。

小さなAPI

Stencilは、学習して再学習する必要のある、大規模なカスタムAPIを意図的に省いています。繰り返しになりますが、私たちの目標は、別のフレームワークを作るのではなく、ブラウザ内で既に実装されているAPIを使って、開発者が将来的に使いやすいコンポーネントを生成するためのツールを提供することです。APIが小さければ小さいほど、学習が容易であり、またバージョンアップなどで破損する可能性も低くなります。

開発中のフレームワーク機能

まだお気づきでない方もいるかもしれませんが、私たちは、Web標準は素晴らしいものであり、多くのメリットを提供してくれるものだと考えています。また、構造を持たずにWeb標準を使うことは、多くのユースケースで適切、かつ可能であると考えられます。しかし、アプリやチームの規模が大きくなると、すぐに管理が難しくなることがわかりました。開発者がフレームワークに惹かれるのは、その優れたツール、定義された構造、そして、開発者が迅速にアプリを構築できる機能のためです。Stencilの最大の目標の一つは、開発中に素晴らしいフレームワークの機能と、一流のツールを使いながら、フレームワークに特化したコードではなく、将来性のあるWeb標準のコードを生成することです。

幅広いブラウザサポート

最新のブラウザ機能と、APIをサポートしていない少数のブラウザのために、Stencilはそれらを自動的にPolyfillします。これが意味することは、すでにネイティブに機能をサポートしているブラウザでは、不要なJavaScriptをダウンロードして、解析する必要がないということです。素晴らしいことに、今日のWebの状況では、ほとんどの最新のAPIは、すでにStencilが必要としているものをリリースしています。すぐにStencilを使えるブラウザのサポートは、IE11以降が含まれています。

BackNext
Contributors