@ice/router
Support config routes, and include all react-router-dom abilities, based on react-router-dom.
Install
$ npm i --save @ice/router
Usage
Write router config:
// src/config/routes.js
import UserLayout from '../layouts/UserLayout';
import Home from '../pages/Home';
import UserLogin from '../pages/UserLogin';
import UserRegistry from '../pages/UserRegistry';
const routerConfig = [
{
path: '/',
component: Home
},
{
path: '/user',
component: UserLayout,
children: [{
path: '/login',
exact: true,
component: UserLogin
}, {
path: '/registry',
component: UserRegistry
}, {
path: '/',
redirect: '/user/login'
}]
}
];
export default routerConfig;
Render router config by @ice/app
:
import React from 'react';
import ReactDOM from 'react-dom';
import { Router } from '@ice/router';
import routerConfig from './config/routes';
ReactDOM.render(
<Router routes={routerConfig} />,
mountNode
);
API
import {
Router,
// same with react-router-dom
BrowserRouter,
HashRouter,
Link,
Switch,
Redirect,
Route,
withRouter,
useHistory,
useLocation,
useParams,
Prompt,
NavLink,
MemoryRouter,
StaticRouter,
generatePath,
matchPath,
useRouteMatch,
} from '@ice/router';
Router
Component props:
- routes: array
- basename: string
- type: 'hash' | 'browser'