React攻略秘籍一:路由 Route6.0

一.前言

相信初学react或者vue的小伙伴们肯定会对路由感兴趣,自从出现spa(单页面应用)这个概念路由也随之诞生,路由的出现也为前端的发展有了更大的帮助,下面让我们去领略路由的魅力吧。

二.路由API

这里我们主要讲的路由6,学习路由5的小伙伴可以查询其他。路由有很多API这里我们为大家逐一介绍一下。

①依赖包

如果你使用的是npm的话:官方下载现在默认的是6版本

如果你使用的是yarn的话:同理

② BrowserRouter

BrowserRouter是最外层的APi,其是用来包裹组件的,其内部使用了history模式,所以会记录用户的使用记录,这样也可以直接跳转。

 ③ Link与NavLink

Link与NavLink,是路由跳转的事件源,你也可以理解成button,但是与button不同的是在这两个标签上你需要添加相对应的跳转路径,而NavLink与Link区别我理解就是可以样式不同。

 ④ Routes与Route

上面有了跳转的按钮了,那自然就有跳转的事件了。Route实现路由的定义,通常我们会使用Routes对Route进行包裹,Routes的作用就是使内部的Route进行智能匹配,防止重复配对,跟路由5的Switch功能呢类似。

扫描二维码关注公众号,回复: 14845267 查看本文章

Route上两个属性很重要,path:路径 这里要与Link填写的一致。elment 就是对应跳转的组件。

⑤ Navigate (重定向)

重定向:用于实现页面的跳转,替代了Redirect,例如下面首次进如页面,默认打开XXXX页面,这是需要使用Navigate,通过to指定要默认打开的页面:

 当然Navigate也可以用来编程式路由导航,比如:点击某个按钮进行路由的跳转。

使用编程路由首先我们要使用的一个hook,useNavigate,有几个重要的参数,1.跳转的路径,2.跳转的传值,3.跳转时切换的方式。

 

 ⑥:路由表 useRoutes

当路由过多时,都是用Route,则会使页面代码过多,这是我们就可以使用路由表。使用路由必然要使用useRoutes这里可以将路由传入进去。

在路由表里,只有一级路由需要加 /,一级路由下的二级路由则不需要加 / 否则就会找不到组件,

在路由表里我们也可以重定向。当出现二级路由时,一定要在一级路由下的children的数组里填写二级路由。

 

 ⑦ Outlet

    用于占位,指定路由位置,用于嵌套路由,展示的地方。简单一点就是outlet可以规定路由里面的内容在哪里出现。

 三 路由传值以及如何接受值的问题

当我们使用路由时一般不单单的是跳转页面这么简单更多的是,通过跳转页面携带对应的参数。下面我们讲诉react跳转路由时,传参的方式。以及对应使用的hook。

1.通过pa'rms传递参数,首先使用parms传递参数时我们需要在路径进行占位操作。然后传递对应的值。

 传值完成怎么获取值了?parms里react给我提供对应的hook,useParams,在这里我们可以解构到对应的值。

 2.通过search传值,search传值方式与parms类似,都是需要占位,不过的时需要给对应的key。

 获取search传值,react也为我们提供了hook useSearchParams

 3.通过state传值,state与其他两者不同这里不需要占位。(query

 获取state传递的值使用useLocation

当我们使用编程导航时我们使用state传值方式

 四 补充

1.useInRouterContext

从名字都不难看出,这个hook是判断处于路由环境。返回true就是存在,返回false就是不存在。

2.useBavigationType

判断当前页面通过那种方式跳转。replace/push/pop(刷新页面)

3.useResolvedPath

解析路径使用

五 结语

最后发布东西也只是想记录一下。有些都是自己的观点。大佬们如果发现错误。希望指教。

猜你喜欢

转载自blog.csdn.net/qq_45865171/article/details/127101030