npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

petit-router

v1.0.1

Published

miniature router for react application that's bound to window history

Downloads

3

Readme

Petit Router

miniature router for react, with window history support

Quick Start

First, install as dependency:

npm install petit-router

Then, use the simple API, just like in the example:

import * as React from 'react';
import { Router, Route, A, back } from 'petit-router';

class App extends React.Component {
  render() {
    return (
      <Router>
        <Route path="/">
          <span>
            This is homepage.
            go to <A href="/about">about</A>
          </span>
        </Route>
        <Route path="/about">
          <span>
            This is About page.
            <button onClick={back}>back</button>
          </span>
        </Route>
      </Router>
    );
  }
}

API

<Router fallback?={string} /> Component

The main component that wraps around the application. The router's path is directly connected to window.location.pathname and is changed via window.history mutations.

Props:

  • fallback?: string the fallback route to use if the current one was not found, such as a 404 page (default value: /)

<Route path={string} />

A component that represents a given route within our application. When the user navigates to path, the contents of the route are mounted, and when he leaves, they are unmounted.

Props:

  • path: string the path to show the contents under.

<A href={string}>

A wrapper around the a html element that navigates within the scope of the router (instead of redirecting the page).

Props:

  • href: string the path to navigate to

navigateTo(path: string)

Triggers page navigation imperatively (could be used instead of the A component).

back()

Triggers back action, that is, navigates to the previous page.

redirect(path: string)

Triggers page redirection - that is, replacing the current route with a new one, and removing the old one from routing history.

License

This package is provided under the ⚖️ ISC license, which basically says that you can do whatever you want :)