Java多功能全棧框架Vaadin 23.0.0釋出

banq發表於2022-03-22

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結合起來,它試圖透過做這兩件事來平滑客戶端渲染和伺服器渲染之間的折中。
 

相關文章