Java多功能全栈框架Vaadin 23.0.0发布


Vaadin 是基于 Java 的多功能全栈框架,是 Spring MVC 的竞争对手。
Vaadin 由两个框架组成,服务器端 Flow 并试图吸引使用 Angular 的开发人员,这是一个在 Vaadin 15 中作为 Fusion 引入的前端框架,它允许在 TypeScript 中执行您的反应式 UI 逻辑,同时继续用 Java 编写后端.
为了消除两者之间的歧义并使区别更加清晰,Fusion 现在被称为 Hilla 并拥有自己的网站
此更改将使查找相关文档变得更容易,并且不会与 Flow 混淆,允许更清晰的沟通并允许 Flow 和 Hilla 更加独立地发展,因为 Hilla 从现在开始将遵循它自己的版本顺序。

Hilla 主要特点是:

  • 使用 Lit TypeScript UI 和 Java Spring Boot 服务器端构建 Web 应用程序的零配置工具链
  • 使用 TypeScript 端点和从 Java 代码生成的数据定义轻松且类型安全的后端访问
  • 表单绑定与服务器和客户端上的共享数据验证
  • 用于构建 UI 的 Vaadin Web 组件

Vaadin 22 是支持 Java 8 的最后一个版本;Vaadin 23 需要 Java 11 。

像 SSR Flow 这样隐藏复杂性并使用单一语言编写后端和前端的框架正在兴起,这引出了一个问题,即 Javascript 是否会很快从前端被淘汰。
  
前后端分离
我们似乎在兜圈子--从多页面渲染到使用AJAX的客户端渲染,再到SPA(单页面应用)到SSR(服务器端渲染),其中就像MPA(多页面应用)一样,后台服务器负责。
诚然,JS框架(例如React、Preact、Vue和Svelte)一直在做SSR,使用Node后端在客户端和服务器上运行Javascript,预先渲染成HTML,最后在客户端运行。
现在,我们正在谈论像Java或C这样的语言做同样的事情

以Blazor为例,它是一种用.NET和C在服务器和客户端编写网络应用的方法,而不是在前端使用Javascript。
Blazor中的代码可以编译成WebAssembly,而不是Javascript。

它的工作方式是将编译成WebAssembly的.Net运行时下载到用户的浏览器中,然后在与JavaScript运行相同的沙盒中运行Blazor应用程序。
由于WASM的这种魔力,你可以在浏览器中运行高强度的应用程序,甚至是C++游戏

Vaadin提供了整个软件包,包括Web组件,你可以用它来构建你的前端。没有HTML模板,因为视图是用Java实现的。
但是现在有了新的解决方案,通过在客户端使用强大的HTML来解耦这个过程。例如htmx和Hotwire都是不依赖堆栈的,并提供具有SPA思维的HTML渲染。

例如,htmx扩展了正常的html语法,并允许向服务器发出异步请求,而服务器则回应html内容,htmx随后将在客户端进行交换。

还有一些混合方法正在兴起,这些方法具有双方的优势,而不是一个取代另一个。其中一个例子是通过补水将服务器渲染和CSR结合起来,它试图通过做这两件事来平滑客户端渲染和服务器渲染之间的折中。