
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的准则和约定。
根据任何一个
可以选择。