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 在 网页开发 中
每月 1,334 次下载
用于 2 个 crate
42KB
818 行
Yew Nested Router
支持嵌套的 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