React路由管理学习笔记

学习老师课程后,部分记录、方便记忆

所谓路由管理,就是让你的页面能够根据 URL 的变化进行页面的切换,这是前端应用中一个非常重要的机制。

主要体现在两个方面。

一方面,路由机制提供了按页面去组织整个应用程序的能力,页面之间的交互可以主要通过 URL 来进行,从而可以让各个业务功能互相独立,实现逻辑的解耦。

另一方面,URL 的全称是 _Uniform Resource Locator_,中文意思是“统一资源定位符”,表明 URL 是用于唯一的定位某个资源的。

 传统WEB:在服务器端渲染的页面中,每个 URL 的变化都是全部页面内容的切换

React:而在前端路由管理中,则一般只在主内容区域 Content 部分变化, Header 和 Sider 是不会变化的。

BrowserRouter:标识用标准的 URL 路径去管理路由,比如 /my-page1 这样的标准 URL 路径。除此之外,还有 MemoryRouter,表示通过内存管理路由;HashRouter,标识通过 hash 管理路由。我们自己实现的例子其实就是用的 hash 来实现路由。

Link:定义一个导航链接,点击时可以无刷新地改变页面 URL,从而实现 React Router 控制的导航。

Route: 定义一条路由规则,可以指定匹配的路径、要渲染的内容等等。

Switch:在默认情况下,所有匹配的 Route 节点都会被展示,但是 Switch 标记可以保证只有第一个匹配到的路由才会被渲染。

使用嵌套路由:实现二级导航页面

所谓嵌套路由,也称为子路由,就是一个页面组件内部,还需要通过 URL 上的信息来决定组件内部某个区域该如何显示。

嵌套路由对应到业务功能,一般就是一个两级导航页面。比如左边是侧边栏导航,用于控制右侧页面的展示。而右侧某个页面呢,又要通过顶部菜单来控制组件的展示。下面这张图就展示了这样一个布局:

这就需要路由框架具备两个能力:

1、能够模糊匹配。比如 /page1/general 、/page1/profile 这样两个路由,需要都能匹配到 Page1 这样一个组件。然后 Page1 内部呢,再根据 general 和 profile 这两个子路由决定展示哪个具体的页面。

2、Route 能够嵌套使用。在我们自定义 Route 的例子中,Route 组件仅用于收集路由定义的信息,不渲染任何内容。如果需要路由能嵌套使用,那就意味着需要在 Route 下还能嵌套使用 Route。而这在 React Router 是提供支持的。 

路由层面实现权限

控制在一个前端应用中,路由机制不仅能够管理我们的导航,另外一个常用的场景就是进行权限的控制。比如说,只有登录了的用户才能访问某些页面,否则就会显示为“未授权”,并提示登录。那么应该如何利用 React Router 去实现权限控制呢?

我们完全可以利用前端路由的动态特性。你已经看到了,路由是通过 JSX 以声明式的方式去定义的,这就意味着路由的定义规则是可以根据条件进行变化的,也就是所谓的动态路由。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百老

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值