#yew-router #yew #router #nested #web #html

yew-nested-router

支持嵌套的 Yew 路由器

18 个版本 (7 个重大变更)

0.7.0 2024 年 4 月 19 日
0.6.3 2024 年 1 月 25 日
0.6.1 2023 年 12 月 19 日
0.5.0 2023 年 11 月 23 日
0.1.0 2022 年 12 月 16 日

#545网页开发

Download history 833/week @ 2024-04-27 206/week @ 2024-05-04 242/week @ 2024-05-11 222/week @ 2024-05-18 317/week @ 2024-05-25 272/week @ 2024-06-01 428/week @ 2024-06-08 468/week @ 2024-06-15 400/week @ 2024-06-22 408/week @ 2024-06-29 415/week @ 2024-07-06 483/week @ 2024-07-13 362/week @ 2024-07-20 501/week @ 2024-07-27 257/week @ 2024-08-03 76/week @ 2024-08-10

每月 1,334 次下载
用于 2 个 crate

Apache-2.0

42KB
818

Yew Nested Router

crates.io docs.rs

支持嵌套的 Yew 路由器。

示例

简而言之,您定义一个主路由入口点(<Router<T>>),在这里您可以切换渲染(<Switch<T>>)。然后您可以将其转换为下一层(Scope<P, C>),以便再次切换渲染(Switch<C>)。

查看完整示例: examples/yew-nested-router-example,您可以使用

trunk serve examples/yew-nested-router-example/index.html

原理

该项目源于对使用 Yew 的嵌套路由器需求的需求。这曾在过去的版本中工作,但从 0.19 版本开始,路由器实现被替换为一个新的实现,该实现没有正确地支持嵌套。仍然可以通过 Yew Agent 项目回溯旧路由器到 Yew 0.19。

然而,在 Yew 0.20 所需的 Yew Agent 0.2 中,移除了“上下文”代理。因此,不再可能回溯旧路由器实现。

这是一个全新的 Yew 路由器实现。它支持嵌套,并使用 Rust 类型进行路由。

目标和观点

这不是旧 Yew 路由器的直接替代品。本节简要介绍了该实现所做的选择

  • 路由器支持嵌套结构,其中子元素不需要知道其父元素。在许多情况下需要这样做,其中希望在不同顶层路由上重用低级别路由。
  • 路由不是由正则表达式或其他模式匹配定义的,而是通过简单地使用正斜杠(/)将 URL 路径分割成段。
  • 实现应尝试通过使用 Rust 的类型系统来帮助避免错误。但它不会完全防止所有可能犯的错误。

依赖项

~12–16MB
~285K SLoC