重定向和404
import React from 'react';
import { Routes, Route, Link,NavLink ,Navigate} from 'react-router-dom';
import Home from './Home/Home'
import About from './About/About'
import News from './News/News'
import NotFound from './NotFound/NotFound';
export default function BoxReact() {return (<>{/* <Link to="/">首页</Link><Link to="/about">关于页</Link><Link to="/news">新闻页面</Link> */}<NavLink to="/home">首页</NavLink><NavLink to="/about">关于页</NavLink><NavLink to="/news">新闻页面</NavLink><Routes><Route path='/home' element={<Home></Home>}></Route><Route path='/about' element={<About></About>}></Route><Route path='*' element={<NotFound></NotFound>}></Route><Route path='/' element={<Navigate to="/home"></Navigate>}></Route></Routes></>)
}
主要的代码部分有
<Route path='*' element={<NotFound></NotFound>}></Route>
<Route path='/' element={<Navigate to="/home"></Navigate>}></Route>
这两段代码表示404和重定向
嵌套路由
App.js中的代码
import React from 'react';
import { Routes, Route, Link,NavLink ,Navigate} from 'react-router-dom';
import Home from './Home/Home'
import About from './About/About'
import News from './News/News'
import NotFound from './NotFound/NotFound';
import NewsSonOne from './NewsSonOne/NewsSonOne';
import NewsSonTwo from './NewsSonTwo/NewsSonTwo';
export default function BoxReact() {return (<>{/* <Link to="/">首页</Link><Link to="/about">关于页</Link><Link to="/news">新闻页面</Link> */}<NavLink to="/home">首页</NavLink><NavLink to="/about">关于页</NavLink><NavLink to="/news">新闻页面</NavLink><Routes><Route path='/home' element={<Home></Home>}></Route><Route path='/about' element={<About></About>}></Route><Route path='/news' element={<News></News>}><Route path='/news/newsSonOne' element={<NewsSonOne></NewsSonOne>}></Route><Route path='/news/newsSonTwo' element={<NewsSonTwo></NewsSonTwo>}></Route></Route><Route path='*' element={<NotFound></NotFound>}></Route><Route path='/' element={<Navigate to="/home"></Navigate>}></Route></Routes></>)
}
News.jsx中的代码
import React from 'react'
import { Outlet,NavLink } from 'react-router-dom'
export default function News() {return (<div><h1>这是新闻页面</h1><NavLink to="/news/newsSonOne">第一个</NavLink><NavLink to="/news/NewsSonTwo">第二个</NavLink><Outlet></Outlet></div>)
}
Outlet这个是子路由出现的窗口,没有会没有出现子路由的视图
NewsSonOne.jsx中的代码
import React from 'react'export default function NewsSonOne() {return (<div>NewsSonOne</div>)
}
NewsSonTwo.jsx中的代码
import React from 'react'export default function NewsSonTwo() {return (<div>NewsSonTwo</div>)
}