0.1.3 • Published 4 years ago

@ice/router v0.1.3

Weekly downloads
8
License
-
Repository
-
Last release
4 years ago

@ice/router

NPM version build status Test coverage NPM downloads David deps

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'