📅 You're Invited: Meet the Socket team at RSAC (April 28 – May 1).RSVP
Socket
Sign inDemoInstall
Socket

mobx-little-router

Package Overview
Dependencies
Maintainers
2
Versions
101
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mobx-little-router

Implementation of an universal router that uses MobX to manage state.

1.8.2
latest
npm
Version published
Maintainers
2
Created
Source

mobx-little-router

This package provides the core functionality of the MobX little router.

Getting Started

Import the install function from package, along with your chosen history creator from history package.

import { install } from 'mobx-little-router'
import { createMemoryHistory } from 'history'

const ROUTES = [{ path: ':whatever' }]

const router = install({
  history: createMemoryHistory(),
  routes: ROUTES
})

Then run router.start(...) which takes in a callback when initialization finishes.

import { autorun } from 'mobx'

router.start(() => {
  autorun(() => console.log(`path = ${router.store.location.pathname}`))

  router.push('/a') // Prints "path = /a/"
  router.push('/b') // Prints "path = /b/"
  router.push('/c') // Prints "path = /c/"

  router.push('/not/found') // Navigation aborts since path cannot be matched from config.
})

Install options

The install function takes the following options:

  • history - The history object created from history.

  • getContext - A function that returns a context object that is accessible from each route. This is useful for sharing MobX stores or other injectable objects.

  • middleware - Custom router middleware for your application.

  • routes - A list of initial route configuration of type Config[], where

    type Config = {
      path: string,
    
      // Static child routes.
      children?: Config[],
    
      // Dynamic child routes
      loadChildren?: () => Promise<Config[]>,
    
      // Guard functions that can block a route from activating or deactivating.
      canActivate?: (route: Route<*, *>) => boolean | Promise<void>,
      canDeactivate?: (route: Route<*, *>) => boolean | Promise<void>,
    
      // Called for each activation or query/param changes to the route.
      // Used for resolving effects.
      willResolve?: (route: Route<*, *>) => Promise<void>,
    
      onTransition?: (evt: TransitionEvent) => Promise<void>
    }
    

    For more type information, check out the routing/types.js file.

Documentation

FAQs

Package last updated on 14 Aug 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts