重定向完善
你已经很好地掌握了路由!在本章节中,我们将介绍如何创建重定向。
创建重定向
重定向非常简单。当 Dioxus 在确定要渲染哪些组件时遇到重定向,它会将用户重定向到重定向目标。
举一个简单的例子,假设你希望用户即使使用了路径 /myblog 或 /myblog/:name,也能访问到你的博客。
重定向是在路由器枚举中的特殊属性,它接受一个路由和一个带有路由参数的闭包。闭包应该返回一个要重定向到的路由。
让我们在我们的路由器枚举中添加一个重定向:
#[derive(Routable, Clone)]
#[rustfmt::skip]
enum Route {
#[layout(NavBar)]
#[route("/")]
Home {},
#[nest("/blog")]
#[layout(Blog)]
#[route("/")]
BlogList {},
#[route("/post/:name")]
BlogPost { name: String },
#[end_layout]
#[end_nest]
#[end_layout]
#[nest("/myblog")]
#[redirect("/", || Route::BlogList {})]
#[redirect("/:name", |name: String| Route::BlogPost { name })]
#[end_nest]
#[route("/:..route")]
PageNotFound {
route: Vec<String>,
},
}
就是这样!现在你的用户将被重定向到博客。
结论
干得好!你已经完成了 Dioxus 路由器指南。你构建了一个小型应用程序,并学习了你可以用 Dioxus 路由器做的许多事情。为了继续你的旅程,你可以尝试下面列出的挑战,查看路由器示例或 API 参考。
挑战
- 将你的组件组织到单独的文件中,以提高可维护性。
- 如果你还没有,给你的应用程序一些样式。
- 构建一个关于页面,让你的访问者了解你是谁。
- 添加一个使用 URL 参数的用户系统。
- 创建一个简单的管理系统,用于创建、删除和编辑博客。
- 如果你想达到极致,将你的应用程序连接到 REST API 和数据库。