Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
N

navigo

> 编程语言
Open source

A simple vanilla JavaScript router.

2.8K stars0 likes0 views
WebsiteGitHub

About

A simple vanilla JavaScript router.

Navigo

A simple dependency-free minimalistic JavaScript router

  • v.8+ documentation
  • v.7 documentation
  • Examples
  • Changelog
  • Using React? Checkout navigo-react package.
  • Online playground here codesandbox.io/s/navigo-example-jrui8;
  • Navigo
    • Selling points
    • Installation
    • Quick start
    • Development
    • Building
    • Tests
    • MISC

Selling points

  • Dependency free
  • ~10KB minified, ~4KB gzipped
  • Based on History API so it does update the URL of the page
  • Supports hash based routing too
  • Simple mapping of route to a function call
  • Parameterized routes
  • Navigating between routes
  • Hooks (before, after, leave, already)
  • Not-found and default handler
  • Easy integration with HTML links via data-navigo HTML attribute

Installation

Drop the following into your page:

<script src="//unpkg.com/navigo"></script>

or via npm/yarn:

> npm install navigo --save
> yarn add navigo -S

Quick start

import Navigo from 'navigo'; // When using ES modules.

const router = new Navigo('/');

The constructor of the library accepts a single argument - the root path of your app. If you host your project at https://site.com/my/awesome/app, your root path is /my/awesome/app. Then you have to define your routes.

router.on('/my/awesome/app', function () {
  // do something
});

At the end you have to trigger the resolving logic:

router.resolve();

After that when you need a page change call the navigate method. This one changes the URL and (by default) triggers resolve.

router.navigate('/about');

Add data-navigo attribute to your page links and they'll be transformed into navigate callers.

<a href="/about/contacts" data-navigo>Contacts</a>

Checkout the online playground to see it in action.

Development

> yarn dev

Building

> yarn build

Tests

> yarn test
> yarn test-watch

MISC

  • A modern JavaScript router in 100 lines

GitHub Issues· 0 open

View all on GitHub

No open issues yet, or sync has not completed.

Highlights

  • •v.8+ documentation
  • •v.7 documentation
  • •Examples
  • •Changelog
  • •Using React? Checkout navigo-react package.
  • •Online playground here codesandbox.io/s/navigo-example-jrui8;
  • •Selling points
  • •Installation
  • •Quick start
  • •Development

> Tags

TypeScripthistoryjavascriptrouter

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言