react自動處理路由
為了避免一個一個route,提高開發效率
自動掃描views資料夾下的檔案,我的要求的含list和index的掃下來
注意:若使用antd的Menu標籤,此處path必須與Menu.item的key屬性完全吻合
import React from 'react'
import { Switch } from 'react-router-dom'
import PrivateRouter from '../privateRouter/Index';
// 代替路由的錄入
// 自動處理路由
const files = require.context('../../views', true, /\.js$/)
// 宣告元件物件
const Components = [];
// 遍歷需要轉成導航欄的頁面views
files.keys().map(item => {
let url = item.slice(1).toLowerCase().split('.')[0]
if (/list/.test(url) || url.includes('index')) {
const component = files(item).default
const path = `/admin${url}`;
Components.push(
{
path,
component
}
)
}
})
class AutoMenu extends React.Component {
constructor(props) {
super(props)
this.state = {}
}
render() {
return (
<Switch>
{Components.map((item) => {
return <PrivateRouter exact key={item.path} path={item.path} component={item.component} />
})}
</Switch>
)
}
}
export default AutoMenu
privateRouter封裝
import React from 'react'
import { Route,Redirect } from 'react-router-dom'
//配置私有路由,阻攔未登入的使用者
const privateRouter = ({ component: Component, ...rest }) => {
let isLogin = localStorage.getItem('userId')
return (
<Route
{...rest}
render={routeProps => (
isLogin?
<Component {...routeProps} />: <Redirect to="/" />
)}
/>
);
}
export default privateRouter
相關文章
- vue路由處理Vue路由
- .Net Core 路由處理路由
- ChatExcel--自動處理表格Excel
- React事件處理React事件
- Mysql自動處理同步報錯MySql
- React 異常處理React
- react之事件處理React事件
- laravel自動路由Laravel路由
- 汙水處理自動化控制與汙水處理廠集中控制
- Python自動化處理Excel資料PythonExcel
- React Native 異常處理React Native
- Hammerspoon for Mac自動化批處理軟體Mac
- React 深入系列5:事件處理React事件
- React 如何來處理表單React
- react路由React路由
- React — 路由React路由
- react 路由React路由
- 使用 React.cloneElement 動態處理 JSX 和字串內容ReactJS字串
- React 18 正式釋出,包括自動批處理、新的 API 等開箱即用的改進ReactAPI
- 證券行業檔案自動化處理行業
- 如何在 Python 中自動化處理 Excel 表格?PythonExcel
- 智慧文字自動處理(Intelligent text automatic processing)(二)Intel
- ElasticSearch 文件併發處理以及文件路由Elasticsearch路由
- Go Web 路由處理利器 gorilla/mux 庫GoWeb路由UX
- React 中常用的事件處理方式React事件
- React setState合併和批量處理React
- React學習筆記-事件處理React筆記事件
- React Router、And、Redux動態選單和動態路由ReactRedux路由
- react之路由React路由
- 介面自動化如何處理介面依賴問題
- 自動化測試中的驗證碼處理
- 如何處理不穩定的自動化測試?
- 介面自動化的前置條件怎麼處理
- vue3.x路由404通配處理Vue路由
- Vue路由自動注入實踐Vue路由
- 基於 React Redux 的錯誤處理ReactRedux
- React事件處理之連蒙帶猜React事件
- React.js 實戰之 事件處理ReactJS事件