Skip to content
Branch: master
Find file Copy path
Find file Copy path
7 contributors

Users who have contributed to this file

@troch @JonathanWolfe @johanalkstal @guicar @fossabot @gitter-badger @grumd
107 lines (83 sloc) 4.12 KB


npm version License: MIT Build Status Join the chat at styled with prettier

Official website:

router5 is a framework and view library agnostic router.

  • view / state separation: router5 processes routing instructions and outputs state updates.
  • universal: works client-side and server-side
  • simple: define your routes, start to listen to route changes
  • flexible: you have control over transitions and what happens on transitions
import createRouter from 'router5'
import browserPlugin from 'router5-plugin-browser'

const routes = [
    { name: 'home', path: '/' },
    { name: 'profile', path: '/profile' }

const router = createRouter(routes)



With React (new context API)

import React from 'react'
import ReactDOM from 'react-dom'
import { RouteProvider, Route } from 'react-router5'

function App({ route }) {
    if (!route) {
        return null

    if ( === 'home') {
        return <h1>Home</h1>

    if ( === 'profile') {
        return <h1>Profile</h1>

    <RouteProvider router={router}>
        <Route>{({ route }) => <App route={route} />}</Route>

With observables

Your router instance is compatible with most observable libraries.

import { from } from 'rxjs/observable/from'

from(router).map(({ route }) => {
    /* happy routing */



You can’t perform that action at this time.