#reactive #web-apps #single-line

栎树反应性

为栎树提供的反应性原语

17 个版本

0.9.0-beta.22023 年 10 月 6 日
0.9.0-beta.12023 年 3 月 26 日
0.8.1 2022 年 9 月 3 日
0.8.0-beta.72022 年 6 月 26 日
0.6.3 2021 年 10 月 10 日

787WebAssembly

Download history 393/week @ 2024-03-14 448/week @ 2024-03-21 581/week @ 2024-03-28 564/week @ 2024-04-04 442/week @ 2024-04-11 481/week @ 2024-04-18 542/week @ 2024-04-25 400/week @ 2024-05-02 382/week @ 2024-05-09 404/week @ 2024-05-16 425/week @ 2024-05-23 488/week @ 2024-05-30 369/week @ 2024-06-06 359/week @ 2024-06-13 422/week @ 2024-06-20 292/week @ 2024-06-27

1,514 每月下载量
用于 29 个工具包 (4 个直接)

MIT 许可证

96KB
2K SLoC

栎树

Crates.io docs.rs GitHub contributors Discord

栎树是一个用于在 RustWebAssembly 中创建 Web 应用的 反应性 库。

#[component]
fn Hello<G: Html>() -> View<G> {
    view! { 
        p { "Hello World!" }
    }
}
  • 闪电速度:栎树通过 RustWebAssembly 充分利用了 Rust 的全部力量,让您完全控制性能。
  • 易于使用且直观:编写自然感觉的代码。一切都是在 反应性原语 上构建的,无需复杂的虚拟 DOM。
  • 无需 JavaScript:对 JavaScript 已感到厌烦?我们也是。使用栎树创建应用程序,无需编写任何一行 JavaScript。

文档

栎树有广泛的文档

  • 入门:如何编写您的第一个栎树应用程序。
  • 反应性:了解如何使用栎树的强大反应性原语。
  • API 文档:rustdocs 为 sycamore 工具包。

还有问题? 请随时访问我们友好的 Discord 服务器

示例

栎树在 examples/ 目录中提供了许多示例供您参考。请务必查看它们!

sycamore-rs.netlify.app 上查看

所有示例都托管在 sycamore-rs.netlify.app/examples/<example_name> 下,其中 <example_name> 是您想要查看的示例名称。例如,todomvc 示例托管在 sycamore-rs.netlify.app/examples/todomvc

本地构建

所有示例也可以使用 Trunk 在本地构建。例如,以下命令构建并服务于 todomvc 示例

cd examples/todomvc
trunk serve

现在在您的浏览器中打开 localhost:8080 以查看 "Hello World!"。

Perseus

Perseus 是一个使用 Sycamore 构建的完整栈框架。想象 NextJSSvelteKit,但没有 JavaScript。从后端到前端,一切都是用纯 Rust 构建的!

替代方案?

认为 Sycamore 不适合您?幸运的是,有很多替代方案!

  • SolidJS:一个用于构建用户界面的声明式、高效且灵活的 JavaScript 库
    Solid 是一个受 Sycamore 极大启发的 JavaScript 库。许多概念,如细粒度反应性和作为工厂函数的组件,都是从 Solid 中借鉴的。如果您不介意使用 JavaScript(或 TypeScript),可以去看看它!
  • Yew:用于构建客户端 Web 应用的 Rust / Wasm 框架
    Yew 也是 Sycamore 的一个重要灵感来源。Yew 采用 VDOM 并具有 MVU(Elm)架构。如果您认为那适合您,请看看它!
  • MoonZoon:Rust 全栈框架
    MoonZoon 也提倡无 VDOM 的范式,并使用 dominator 作为其底层 DOM 层。MoonZoon 是一个全栈框架,使得将前端和后端代码结合起来更加容易,且无需编写大量样板代码。

贡献

  • 在我们的 问题跟踪器 上报告问题。
  • 我们喜欢拉取请求!有关更多信息,请参阅文档中关于贡献的 部分

Sycamore 的实现离不开社区的美好贡献。谢谢大家!

特别感谢 @nate-sys 为 Sycamore 设计标志!

依赖项

~325–610KB
~11K SLoC