Phoenix 是 Spring 和 Spring Boot 的现代模板引擎,旨在通过提供一种创建复杂和模块化模板的方法来促进复杂 Web 应用程序的开发,该模板受益于服务器端渲染,以便更好地集成前端和后端。
Phoenix 与 Thymeleaf 或 Freemarker
与目前其他现有模板引擎相比,Phoenix 具有以下几个优势:
- 能够将 Java 代码直接集成到 HTML 模板中,而无需学习新语法或特殊实用程序。
- 一种更容易理解的语法,只需要一个特殊字符“@”即可将Java代码集成到HTML代码中。
- 可以组合和重用的片段或组件,使代码更易于维护。
- 速度、速度、速度 - Phoenix 模板经过编译,渲染速度比 Thymeleaf 快 10 倍。
- 单个 PhoenixController 可以轻松返回 HTML 页面和 JSON 响应。
- 反向路由——Spring 的一个全新功能。URL 在运行时写入模板中,无需手动写入。您只需要提及控制器和方法,Phoenix 就会计算出正确的 URL。这样,您就可以更改控制器中的 URL,而无需修改模板。
- 通过从 JS 调用后端来动态修改页面以获得可随时添加到 DOM 的片段/模块。
- 易于配置*(正在进行中以减少必要的依赖性)。
为什么选择 Phoenix 而不是 React/Angular/Vue?
Phoenix 无意成为 JS 框架的替代品。相反,Phoenix 的目标是利用现有的 JS 框架添加 SSR,从而提高页面渲染速度和 FE-BE 集成。您不再需要总是返回复杂的 JSON;您可以直接提供一个 HTML 页面,其中包含所需的所有内容,仅此而已。关于 SSR 与非 SSR 可能存在很大的争论,因此 Phoenix 试图结合两者的优势。
代码展示:
@import java.util.List; |
- Phoenix 具有易于使用的语法,允许您直接在 HTML 模板文件中编写 Java 代码。特殊@字符表示将被转换为 Java 代码并编译的非 HTML 代码。
- 使用@import关键字,您可以使用 Java 或应用程序中的任何类。这将允许您在模板中使用该类。
- 每个模板必须有一个构造函数。这是使用 hte@constructor()元素完成的。
- 使用@后跟变量名称的字符来引用模板中任何位置的变量。呈现模板后,字符串表示形式将显示在 HTML 代码中。
- 使用@if语句定义条件块。