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

Stencil 的目标和目的

Stencil 旨在将最流行的前端框架的最佳概念组合成一个编译时工具而不是运行时工具。需要强调的是,Stencil 的目标是成为或被视为“框架”,我们的目标是提供出色的开发人员体验和框架所期望的工具,同时使用 Web 标准在浏览器中运行。在许多情况下,鉴于浏览器中现在可用的功能,Stencil 可以用作传统前端框架的替代品,但不是必需的。

Web 标准

最终由 Stencil 生成的组件是通过 Web components 实现,因此它们可以在任何主要框架中工作,或者不需要框架。此外,其他严重依赖的标准包括 ES 模块和动态导入,它们已被证明可以取代传统的打包器,这些打包器会增加不必要的复杂性和 JavaScript 运行开销 。通过使用 Web 标准,开发人员可以学习和采用世界各地记录的标准 API,而不是不断变化的自定义框架 API。

自动优化

借助 Stencil 能够将组件代码作为输入进行分析,并生成优化的组件作为输出。避免开发人员进行无数优化和调整来提高组件和网站的性能。

面向未来

随着软件开发世界的不断发展,编译器也在不断发展。不需要完全重写组件,编译器可以继续使用标准组件模型作为公共输入进行优化。编译器允许开发人员创建面向未来的组件,同时仍然保持最新的优化,而无需一遍又一遍地重新开始。此外,如果任何 API 发生变化,编译器能够进行自动调整并准确通知开发人员需要更新的内容。

运行时表现

Stencil 不是编写每个用户都需要下载和解析应用程序才能运行的自定义客户端 JavaScript,而是更喜欢使用直接在浏览器中构建的已经很棒的 AP​​I。这些 API 包括自定义元素

简单的 API

Stencil 特意没有创建需要学习和重新学习的大型自定义 API,而是依赖 web 标准。再一次声明,我们的目标不是创建另一个框架,而是为开发人员提供工具,以使用浏览器中已经内置的 API 生成对未来友好的组件。 API 越小,越容易学习,而且越不容易被破坏。

开发中框架的特性

如果您还没有注意到,我们认为 Web 标准很棒并且提供了许多好处。虽然使用没有任何结构的 Web 标准当然是可以的,但是实际上有很多用例是合理的,但我们发现随着应用程序和团队的扩展,它很快变得难以管理。开发人员通常倾向于使用框架,因为它们具有出色的工具、定义的结构以及允许开发人员快速构建应用程序的能力。 Stencil 的最大目标之一是在开发过程中拥有强大的框架功能和一流的工具,但生成面向未来的 Web 标准代码,而不是自定义框架特定代码。

优秀的浏览器支持

对于不支持现代浏览器功能和 API 的少数浏览器,Stencil 会自动按需填充它们。这意味着对于已经原生支持该功能的浏览器,他们将不必下载和解析任何不必要的 JavaScript。好消息是,在当今的网络环境中,大多数现代 API 已经可以满足 Stencil 的需求。开箱即用的浏览器支持包括 IE11 及更高版本。

BackNext
Translators
Contributors