franxx
A vanilla JavaScript router that works everywhere.
Last updated 8 months ago by egoist .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install franxx 
SYNC missed versions from official npm registry.

FRANXX

NPM version NPM downloads CircleCI donate chat

Install

yarn add franxx

Usage

Edit FRANXX example

import { createBrowserRouter, createHashRouter, createMemoryRouter } from 'franxx'

// Router using HTML5 history API
// Widely supported (IE 10 and above)
const router = new createBrowserRouter()
// Router using location.hash
// Useful for environments like Electron 
// Where you can't use history API
const router = new createHashRouter()
// Router using memory
// Mainly for server-side or mobile apps
const router = new createMemoryRouter()

router.add('/', () => {
  console.log('homepage')
})

router.add('/user/:name', ({ params, query }) => {
  console.log(params.name)
})

// The router by default automatically runs route handler
// When URL changes
// But for initial render
// You need to call this:
router.run()

// Go to another page
router.push('/user/egoist?from=NASA#profile')
// Or let us normalize the path for you
router.push({
  pathname: '/user/egoist',
  query: { from: 'NASA' },
  hash: '#profile'
})

Supported path patterns:

  • Static (/foo, /foo/bar)
  • Parameter (/:title, /books/:title, /books/:genre/:title)
  • Parameter w/ Suffix (/movies/:title.mp4, /movies/:title.(mp4|mov))
  • Optional Parameters (/:title?, /books/:title?, /books/:genre/:title?)
  • Wildcards (*, /books/*, /books/:genre/*)

Note that the order you add routes matters, dynamic routes should always go last, i.e. add /about before adding *. We will address this issue in a future version.

API

https://franxx.egoist.sh

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

franxx © egoist, Released under the MIT License.
Authored and maintained by egoist with help from contributors (list).

github.com/egoist · GitHub @egoist · Twitter @_egoistlily

Current Tags

  • 1.2.1                                ...           latest (8 months ago)

6 Versions

  • 1.2.1                                ...           8 months ago
  • 1.2.0                                ...           8 months ago
  • 0.1.2                                ...           3 years ago
  • 0.1.1                                ...           3 years ago
  • 0.1.0                                ...           3 years ago
  • 0.0.0                                ...           3 years ago
Maintainers (2)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 0
Dependencies (3)
Dev Dependencies (9)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |