Leptos —— 全栈 Rust Web 框架
Leptos 是一个全栈的、同构的 Rust 网络框架,利用细粒度的反应性来构建声明式的用户界面。
值得注意的是,该框架正在积极开发中。开发者将它保持在 0.0.x 版本的周期中,以表明它甚至还没有为 0.1.0 做好准备。正在对文档和功能进行积极的工作,API 不一定被认为是稳定的。同时,它不仅仅是一个玩具项目或概念验证,作者正在积极地将它用于自己的应用程序开发。
use leptos::*; #[component] pub fn SimpleCounter(cx: Scope, initial_value: i32) -> Element { // create a reactive signal with the initial value let (value, set_value) = create_signal(cx, initial_value); // create event handlers for our buttons // note that `value` and `set_value` are `Copy`, so it's super easy to move them into closures let clear = move |_| set_value(0); let decrement = move |_| set_value.update(|value| *value -= 1); let increment = move |_| set_value.update(|value| *value += 1); // this JSX is compiled to an HTML template string for performance view! { cx, <div> <button on:click=clear>"Clear"</button> <button on:click=decrement>"-1"</button> <span>"Value: " {move || value().to_string()} "!"</span> <button on:click=increment>"+1"</button> </div> } } // Easy to use with Trunk (trunkrs.dev) or with a simple wasm-bindgen setup pub fn main() { mount_to_body(|cx| view! { cx, <SimpleCounter initial_value=3 /> }) }
特点:
- 全栈:Leptos 可以用来构建在浏览器(客户端渲染)、服务器(服务器端渲染)中运行的应用程序,或者通过在服务器上渲染HTML,然后在浏览器中添加交互性(hydration)。这包括支持数据(资源)和HTML的HTTP流(<Suspense/>组件的失序流)。
- 同构:Leptos提供了编写同构服务器函数的 primitives,即可以在客户端或服务器上以 "相同的形式 "调用的函数,但只在服务器上运行。这意味着你可以在客户端组件旁边编写你的服务器专用逻辑(数据库请求、认证等),并调用服务器函数,就像它们在浏览器中运行一样。
- Web:Leptos 建立在Web平台和Web标准之上。该路由器旨在使用 Web 基础知识(如链接和表单)并构建在它们之上,而不是试图取代它们。
- 框架:Leptos 提供了构建现代 Web 应用程序所需的大部分内容:反应式系统、模板库以及可同时在服务器端和客户端运行的路由器。
- 细粒度的反应性:整个框架都是基于 reactive primitives 构建的。这允许以最小的开销编写极其高效的代码:当反应信号的值发生变化时,它可以更新单个文本节点、切换单个类或从 DOM 中删除元素,而无需运行任何其他代码。(所以,没有虚拟 DOM!)
- Declarative : 告诉 Leptos 你想让页面看起来怎么样,让框架告诉浏览器怎么做。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | MySQL 性能优化浅析及线上案例
作者:京东健康 孟飞 1、 数据库性能优化的意义 业务发展初期,数据库中量一般都不高,也不太容易出一些性能问题或者出的问题也不大,但是当数据库的量级达到一定规模之后,如果缺失有效的预警、监控、处理等手段则会对用户的使用体验造成影响,严重的则会直接导致订单、金额直接受损,因而就需要时刻关注数据库的性能问题。 2、 性能优化的几个常见措施 数据库性能优化的常见手段有很多,比如添加索引、分库分表、优化连接池等,具体如下: | 序号 | 类型 | 措施 | 说明 | | 1 | 物理级别 | 提升硬件性能 | 将数据库安装到更高配置的服务器上会有立竿见影的效果,例如提高CPU配置、增加内存容量、采用固态硬盘等手段,在经费允许的范围可以尝试。 | | 2 | 应用级别 | 连接池参数优化 | 我们大部分的应用都是使用连接池来托管数据库的连接,但是大部分都是默认的配置,因而配置好超时时长、连接池容量等参数就显得尤为重要。 1、 如果链接长时间被占用,新的请求无法获取到新的连接,就会影响到业务。 2、 如果连接数设置的过小,那么即使硬件资源没问题,也无法发挥其功效。之前公司做过一些压测,但就是死活不...
- 下一篇
Java 最新 JEP 草案:不再要求构造器的首行语句是 super() 或 this()
OpenJDK 官网公布了一项新的 JEP 草案,内容是不再要求 super() 或 this() 在构造器中作为首条语句出现。 该草案当前目标是更改 Java 语言规范,并对 Java 编译器进行相应的更改,以便: super()或this()不再必须作为构造器中的第一条语句出现 保留提供给构造器的现有安全和初始化保证 现有程序继续像以前一样编译和运行 按照目前的 Java 语言规范,构造器的第一条语句必须要求调用super()或this()。但 Java 虚拟机实际上支持更多的灵活性: this()或super()的多次调用可能会出现在构造器中,只要在任何代码路径上有一次调用 任意代码可出现在this()/super()之前,只要该代码不引用正在构建的实例 不过this()/super()调用可能不会出现在try { }块内 事实上,JLS 受到了许多不必要的限制。而这种不一致属于历史产物:最初的 JVM 规范也有更多的限制,这导致了编译器生成的合成字段存在初始化问题——为了支持新的语言特性,如内部类和捕获的自由变量。现在 JVM 规范被放宽以适应编译器,但这种新的灵活性从未回到语...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路