在react 中,路由重定向的核心就是Redirect和Switch ,不論是單層路由還是多層
import { HashRouter,BrowserRouter, Route,Router, Link, Redirect, Switch} from "react-router-dom";
import Header from './components/Header';
import Login from './page/Login/index';
import Register from './page/Login/register';
import RemakePassWord from './page/Login/remakePassWord';
import HomeIndex from './page/Login/HomeIndex';
import List from './page/Login/List';
import Error from './page/Login/Error';
const App=() =>{
return (
<div className="App">
<BrowserRouter>{/* 哈希router還是Browser随需求*/}
<Header/>
<Switch>
{/* 想要重定向比對準确 Switch必須加 Switch隻顯示比對到的第一個路由*/}
<Route exact path="/" component={Login} />
<Route path="/register" component={Register} />
<Route path="/remakePassWord" component={RemakePassWord} />
{/* 一層路由重定向 重定向到Login */}
<Redirect to="/" />
{/*二層路由*/}
<Route path="/main" >
<Switch>{/*二層想要重定向準确 二層Switch也是必須加的 */}
<Route path="/main/homeIndex" component={HomeIndex} />
<Route path="/main/list" component={List} />
<Route path="/main/404" component={Error} />
{/* 二層路由重定向 重定向到Error頁面 寫/main/404和404都行 */}
<Redirect to="/main/404" />
</Switch>
</Route>
</Switch>
</BrowserRouter>
</div>
);
}
...
export default App;