12 个版本
0.2.0-rc1 | 2024年2月5日 |
---|---|
0.2.0-beta-2 | 2024年1月26日 |
0.1.8 | 2023年11月19日 |
1545 在 网页编程
每月 90 次下载
84KB
1.5K SLoC
leptos_form: 从 Rust 结构体派生 leptos 表单
文档
功能
- 自动表单解析 — 专注于数据的表示方式,而不是如何将其从 HTML 中获取和输出
- 轻松指定标签和输入类,非常适合 Tailwind 集成
- 标签从结构体字段派生,可以给予表单全局命名空间
- 通过属性自定义 DOM 布局
- 与流行的软件包集成
软件包功能
此软件包提供了以下功能,所有功能默认均未激活
bigdecimal
:为BigDecimal
提供实现cache-local-storage
:支持将中间表单数据写入/从本地存储读取。cache-serde_json
:支持将表单状态(反)序列化为 JSON。chrono
:为DateTime
、NaiveDate
和NaiveDateTime
提供实现num-bigint
:为BigInt
和BigUint
提供实现uuid
:为Uuid
提供实现
示例
mod my_crate {
use leptos::*;
use leptos_form::prelude::*;
use serde::*;
#[derive(Clone, Debug, Default, Deserialize, Form, Serialize)]
#[form(
component(
action = create_my_data(my_data),
on_success = |DbMyData { id, .. }, _| view!(<div>{format!("Created {id}")}</div>),
reset_on_success,
),
label(wrap(class = "my-class", rename_all = "Title Case")),
)]
pub struct MyData {
pub my_name: String,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct DbMyData {
pub id: i32,
pub name: String,
}
#[component]
pub fn MyComponent() -> impl IntoView {
view! {
<MyData
initial={MyData::default()}
top=|| view!(<input type="button" value="Submit" />)
/>
}
}
#[server]
async fn create_my_data(my_data: MyData) -> Result<DbMyData, ServerFnError> {
todo!()
}
}
依赖关系
~20–33MB
~535K SLoC