react教程,react页面如何使用路由?hash路由用什么替代?
发布于 作者:苏南大叔 来源:程序如此灵动~

这里写几篇关于react
的新手教程,主要是路由相关的。大家都知道,react
里面是所有的组件都放置在一起的。具体显示哪个页面,显示哪个组件是根据路由来进行判断的。这也就是本文中要讨论的问题:如何在react
网页中如何使用react-router
路由。

大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文描述,两种最常见的react-router
的使用方式。即:browserRoute
和hashRoute
。在react-router
官方文档中,还有其它好几个路由,但是由于比较不常见,这里就不做说明了。本文测试环境:win10
,create-react-app
,react@18.1.0
,react-dom@18.1.0
,react-router-dom@6.3.0
,node@16.14.2
。
前文回顾
先回顾一下前文,react
官方推荐大家使用create-react-app
作为脚手架搭建react
项目。然后进入搭建好的react
项目内运行代码。参考文章:
先全局安装create-react-app
:
然后创建项目:
然后启动项目?
可以看到打开了3000
端口,这个时候如果修改页面代码的话,这个浏览器里面的界面是可以实时刷新的。

react
路由
其官方网址是:

react
路由功能非常强大,它提供了以下几个常用的组件。
Router
:HashRouter
+BrowserRouter
Routes
,Route
Link
,useParams
- 其它..
本文中要使用的是HashRouter
和BrowserRouter
这两个路由。其实还有其它的官方路由,但是没有啥使用场景,暂时用不到。
测试代码
这里同时import
了HashRouter
和BrowserRouter
,然后使用router
来作为区分,决定具体使用哪个路由。就是说调用方面其实可以做到:
index.js
:

重点就是下面的语句:
以及:
app.js
:

HashRouter
修改app.js
中的import
中的Router
位置为HashRouter
即可。这种情况,页面的链接地址表现为hash
。
官方并不推荐这种HashRouter
方式,但是react
早期都是这种方式的,所以还是有一定的残余的。

BrowserRouter
修改app.js
中的import
中的Router
位置为BrowserRouter
即可。这种情况,就是利用pushState
管理的。相关文章:
官方极力推荐这种BrowserRouter
方式,效果也确实好。

参考文献
- https://reactrouter.com/docs/en/v6/getting-started/installation#create-react-app
- https://reactrouter.com/docs/en/v6/api#hashrouter
- https://reactrouter.com/docs/en/v6/api#browserrouter
总结
本文主要讲述hash
路由和browser
路由的区别,目前推荐使用的是:BrowserRouter
,而不是HashRouter
。更多的react
文章,请参考:


