react-router-management
react-router-management
inspired by vue-router
Install
npm install --save react-router-management
Usage
Basic
// App.tsx
import React, { Component } from 'react'
import { BrowserRouter as Router } from 'react-router-dom'
import { RouterManagement } from 'react-router-management'
import HelloWorldPage from 'pages/HelloWorld'
const routes = [
{
exactly: false,
path: '*',
name: 'HelloWorld',
component: HelloWorldPage
}
]
export default () => {
return (
<Router>
<RouterManagement routes={routes} />
</Router>
)
}
With Router file
// router/index.ts
import { RouterManagement } from 'react-router-management'
import HelloWorldPage from 'pages/HelloWorld'
const routes = [
{
exactly: false,
path: '*',
name: 'HelloWorld',
component: HelloWorldPage
}
]
export default () => {
return RouterManagement({ routes })
}
// App.tsx
import React from 'react'
import { BrowserRouter as Router } from 'react-router-dom'
import { RouterManagementViews } from './router'
const App: React.FC = () => {
return (
<Router>
<RouterManagementViews />
</Router>
)
}
export default App
Grouping
// example for /user/hello
const routes = [
{
path: '/user',
group: [
{
path: '/hello',
name: 'HelloWorld',
component: HelloWorldPage
}
]
},
{
path: '*',
name: '404',
component: 404Page
}
]
License
MIT © Planxnx
Dependencies
Dependencies
@testing-library/jest-dom: ^4.2.4@testing-library/react: ^9.5.0@testing-library/user-event: ^7.2.1@types/jest: ^25.1.4@types/node: ^12.12.38@types/react: ^16.9.27@types/react-dom: ^16.9.7@typescript-eslint/eslint-plugin: ^2.26.0@typescript-eslint/parser: ^2.26.0microbundle-crl: ^0.13.10babel-eslint: ^10.0.3cross-env: ^7.0.2eslint: ^6.8.0eslint-config-prettier: ^6.7.0eslint-config-standard: ^14.1.0eslint-config-standard-react: ^9.2.0eslint-plugin-import: ^2.18.2eslint-plugin-node: ^11.0.0eslint-plugin-prettier: ^3.1.1eslint-plugin-promise: ^4.2.1eslint-plugin-react: ^7.17.0eslint-plugin-standard: ^4.0.1gh-pages: ^2.2.0npm-run-all: ^4.1.5prettier: ^2.0.4react: ^16.13.1react-dom: ^16.13.1react-scripts: ^3.4.1typescript: ^3.7.5