14 个不稳定版本 (3 个重大变更)
0.4.0 | 2023 年 12 月 28 日 |
---|---|
0.3.1 | 2023 年 8 月 31 日 |
0.3.0-alpha.0 | 2023 年 7 月 19 日 |
0.2.0 | 2022 年 10 月 1 日 |
0.1.3-alpha.0 | 2020 年 12 月 30 日 |
#22 in #前端框架
27 每月下载次数
在 5 个crate中使用 (4 个直接使用)
52KB
1K SLoC
Hirola
Hirola 是一个以简洁性和响应性为重点的声明式前端框架。
目标
- KISS: 以简单和声明式的方式在 Rust 中构建前端 UI。
- 使代码易于阅读、扩展和共享。
- 提供细粒度响应性的 Frp 信号。
- 熟悉性: 使用与 jsx 非常相似的 rsx。
示例
我们将创建一个简单的计数器程序。
cargo new counter
对于一个新的项目,我们需要创建一个 index 文件,它是入口点并且需要 trunk。
cd counter
在 counter 的根目录下创建一个 index.html
。添加以下内容
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hirola Counter</title>
</head>
<body></body>
</html>
让我们在 src/main.rs
中添加一些代码
use hirola::prelude::*;
use hirola::dom::*;
fn counter() -> Dom {
let count = Mutable::new(0i32);
let decrement = count.callback(|s| *s.lock_mut() -= 1);
let increment = count.callback(|s| *s.lock_mut() += 1);
html! {
<>
<button on:click=decrement>"-"</button>
<span>{count}</span>
<button on:click=increment>"+"</button>
</>
}
}
fn main() {
hirola::dom::mount(counter()).unwrap();
}
现在让我们运行我们的项目
trunk serve
生态系统
查看用 Hirola 编写的 Hirola 文档!
以下是一些 hirola 的扩展
里程碑
状态 | 目标 | 标签 |
---|---|---|
✔ | 使用 Rust 和 rsx 的基本模板 | 准备就绪 |
✔ | 使用混入扩展功能 | 准备就绪 |
✔ | 组件 | 准备就绪 |
✔ | SSR | 准备就绪 |
✔ | 信号 | 准备就绪 |
🚧 | 表单管理 | 开始 |
⏳ | Markdown 模板 | 待定 |
🚧 | 样式 | 开始 |
⏳ | SSG | 待定 |
依赖
~1.5–2.3MB
~47K SLoC