现代的前端应用大多都是 SPA(单页应用程序),也就是只有一个HTML 页面的应用程序。因为它的用户体验更好、对服务器的压力重小,所以更受欢迎。为了有效的使用单个页面来管理原来多页面的功能,前端路由
应运而生。
URL路径
与 组件
的对应关系安装yarn,已有的跳过
npm install -g yarn
使用yarn 安装路由组件
yarn add react-router-dom
import {
BrowserRouter,
Routes,
Route,
Link,Outlet
} from "react-router-dom";
完整示例:
import React from 'react'
import ReactDOM from 'react-dom/client'
//1.导包
import {
BrowserRouter,
Routes,
Route,
Link,Outlet
} from "react-router-dom";
const First = () =>{
console.log("first")
return (<p>第一条内容</p>)
}
const Home = () => (
<div>
<h1>路由</h1>
{/* 2. 定义link就是超链接,跳转到指向的页面 */}
<Link to='/first'>first</Link>
{/* 若要显示子路由的内容,必须要有Outlet */}
<Outlet />
</div>
)
const root = ReactDOM.createRoot(document.getElementById("root"))
root.render(
//渲染
//3.定义路由路径
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />}>
{/* } /> */}
</Route>
<Route path='/first' element={<First />} />
</Routes>
</BrowserRouter>
)
效果:
点击first跳转到另一个页面:
Route 下面可以有子路由,子路由的全路径=父路由路径+子路由路径。
父路由下必须包含
才能在父页面下展示子页面。
不推荐。HashRouter是使用URL的hash值实现,会使浏览器的地址根目录以#开头,其他看不出差别。
只需要将BrowserRouter换成HashRouter标签即可,其他无需改动。
会被编译成一个a标签。to属性编译成href。