现在的网页,不同于之前的全页面刷新,一般会采用局部刷新,用户不会感知,看起来实际上只有一个页面,所以也被称为 “单页应用” (Single Page Appliaction) 。
简介
React-Router 提供了两个组件来完成路由功能,包括了 Router
整个应用只需要一个实例,保存了路由表;另一个是 Route
代表着一个 URL 的路由规则。
可以直接通过 npm install --save react-router-dom
命令安装。
示例
这里直接通过 create-react-app
脚手架安装,先通过 npm install -g create-react-app
命令安装。
create-react-app foobar
然后直接修改 src/App.js
文件。
import React from "react";
import {
BrowserRouter as Router,
Switch,
Routes,
Link
} from "react-router-dom";
export default function App() {
return (
<Router>
<div>
<nav>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>
</ul>
</nav>
<Routes>
<Route path="/" element={ <Home /> } />
<Route path="/about" element={ <About /> } />
</Routes>
</div>
</Router>
);
}
function Home() {
return <h2>Home</h2>;
}
function About() {
return <h2>About</h2>;
}
这里使用的是 BrowserRouter
也可以替换为 HashRouter
,此时,URL 的路由前会添加一个 /#/
。
另外,也可以使用 component
参数,其用途就是返回一个虚拟的 DOM ,例如,上述路由可以修改为如下。
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/about" component={About} />
</Switch>
也可以直接构建虚拟 DOM 。
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/about" component={About} />
<Route exact path="/dashboard" component={()=><div>Hello DashBoard</div>} />
<Route component={()=><div>404 Page!!!</div>} />
</Switch>
最后一个类似于 switch
语句中的 default
。