
LEWP是一個服務器端網站渲染框架,它使您能夠使用Rust的完整算法功率來創建技術有效的HTML5網站。
它的方法與當前不使用模板, JSX或其他混合語言的自定義語法可用的大多數流行框架不同。這樣可以防止您的代碼變得混亂,最終會陷入無與倫比的意大利麵條中。
通過其獨特的頁面,組件和資源的識別方法,Lewp加快了下一個網站的開發,即使您在更長的時間內沒有觸摸源代碼,也可以更輕鬆地維護。
多虧了LEWP的文件層次結構實現,構建您的資源從未如此簡單。他們甚至被編譯到最終的二進制中,因此您不必擔心丟失部署的資源。您的組件CSS和JavaScript會自動隔離並集成到您的網頁中,因此,不再撕裂有關<script>和<link>標籤的優化的人的頭髮。在探索LEWP時,您將為您的網站創建提供更多簡化和優化。
生成您的HTML5網站技術優化,並且始終有效,而不會失去算法的舒適性和靈活性。
該板條箱目前正在發展。 API破壞變化可以隨時發生,直到v1.0.0。編譯器警告目前被用作開發提醒,並將盡快刪除。
這是PHP版本的LEWP的調整後的Rust實現。
如果您有疑問,想要貢獻或有任何其他類型的請求,則邀請您創建問題。
簡單地創建網頁而不混合編程語言或將邏輯放入您的HTML(就像模板中完成)
創建具有真正隔離和可重複使用的組件/模塊的模塊化網站,例如。自動命名CSS和JavaScript
提供文件夾層次結構的默認實現,以方便資源管理和在不同項目之間共享的可能性
獲得兩全其美,服務器端渲染和客戶端應用程序邏輯
最小化頁面加載時間(例如FCP和TTI)
無HTML樣板代碼
盡可能地應用SEO最佳實踐
❗LEWP不是網絡服務器。這是一個庫,可以支持您構建算法,使它們完美地與您的視圖相符,而無需讓您的代碼變得混亂!它與火箭,actix-web或axum等框架完美整合。
有關更多帶有評論的示例,請查看存儲庫的示例。
use lewp :: {
component :: { Component , ComponentId , ComponentModel } ,
html :: {
api :: { h1 , text } ,
Node ,
} ,
page :: { Page , PageId , PageModel } ,
view :: PageView ,
} ;
struct HelloWorld {
data : String ,
}
impl HelloWorld {
pub fn new ( ) -> Self {
Self {
data : String :: from ( "Hello World!" ) ,
}
}
}
impl ComponentModel for HelloWorld {
type Message = ( ) ;
fn id ( & self ) -> ComponentId {
"hello-world" . into ( )
}
fn main ( & mut self ) { }
fn view ( & self ) -> Option < Node > {
Some ( h1 ( vec ! [ text ( & self . data ) ] ) )
}
}
struct HelloWorldPage ;
impl PageModel for HelloWorldPage {
fn id ( & self ) -> PageId {
"hello-world-page" . into ( )
}
fn main ( & self , view : & mut PageView ) {
let mut comp = Component :: from ( HelloWorld :: new ( ) ) ;
view . push ( & mut comp ) ;
}
}
fn main ( ) {
simple_logger :: init ( ) . unwrap ( ) ;
let page = Page :: from ( HelloWorldPage { } ) ;
let executed_page = page . main ( ) ;
println ! ( "{}" , executed_page . render ( ) ) ;
} <link>PageModel和ComponentModel的異步主要方法除非明確說明,否則任何有意提交的捐款(如Apache-2.0許可證中定義)應為雙重許可,如下所示,沒有任何其他條款或條件。
請查看貢獻.md的準則和約定。
根據任何一個
可以選擇。