私有路由的另一种写法……

来源:12-2 【路由进阶】私有路由搭建

进击的技术宅

2022-06-04

老师,我这种私有路由的写法,可行不?有没有潜在的大坑?

import React from 'react'
import styles from './App.module.css'
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
import { Home, Register, SignIn, Detail, SearchPage, ShoppingCart } from './pages'
import { useSelector } from './redux/hooks'

const PrivateRoute = ({ children }) => {
  const jwt = useSelector(state => state.user.token)
  return jwt != null ? children : <Navigate to='/signIn' />
}

function App() {
  
  return (
    <div className={styles.App}>
      <BrowserRouter>
        <Routes>
          <Route path='/' element={<Home />} />
          <Route path='/signIn' element={<SignIn />} />
          <Route path='/register' element={<Register />} />
          <Route path='/detail/:routeId' element={<Detail />} />
          <Route path='/search' element={<SearchPage />} >
            <Route path=':keywords' element={<SearchPage />} />
          </Route>
          <Route path='/shoppingCart' element={<PrivateRoute><ShoppingCart /></PrivateRoute>} />
          <Route path='*' element={<h1>404~~~页面不存在哦</h1>} />
        </Routes>
      </BrowserRouter>
    </div>
  );
}

export default App;
写回答

1回答

阿莱克斯刘

2022-06-04

没有问题,思路非常清晰。

1
0

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程