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路由
- ChatExcel--自動處理表格Excel
- .Net Core 路由處理路由
- React事件處理React事件
- Mysql自動處理同步報錯MySql
- 資料自動處理系統
- laravel自動路由Laravel路由
- React 異常處理React
- react之事件處理React事件
- 批處理實現自動ftp功能FTP
- 汙水處理自動化控制與汙水處理廠集中控制
- Python自動化處理Excel資料PythonExcel
- SQL Server雨情處理自動補資料SQLServer
- 批處理 自動修改 IP 地址(轉載)
- 自動處理管理駕駛艙衝緩衝
- React 18 正式釋出,包括自動批處理、新的 API 等開箱即用的改進ReactAPI
- react路由React路由
- react 路由React路由
- React — 路由React路由
- React 深入系列5:事件處理React事件
- React Native 異常處理React Native
- React 如何來處理表單React
- Fastlane自動打包工具build號自增處理配置方法ASTUI
- 證券行業檔案自動化處理行業
- Hammerspoon for Mac自動化批處理軟體Mac
- SAP BW ODS無效字元自動處理程式字元
- React Router、And、Redux動態選單和動態路由ReactRedux路由
- react之路由React路由
- ElasticSearch 文件併發處理以及文件路由Elasticsearch路由
- Go Web 路由處理利器 gorilla/mux 庫GoWeb路由UX
- 使用 React.cloneElement 動態處理 JSX 和字串內容ReactJS字串
- Vue路由自動注入實踐Vue路由
- React setState合併和批量處理React
- React 中常用的事件處理方式React事件
- React學習筆記-事件處理React筆記事件
- React 16 中的異常處理React
- 介面自動化的前置條件怎麼處理