New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

router-dom

Package Overview
Dependencies
Maintainers
0
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

router-dom

A lightweight router for everyone

  • 3.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.2K
decreased by-15.48%
Maintainers
0
Weekly downloads
 
Created
Source

router-dom

A lightweight router for single-page applications with faster subsequent page-loads by prefetching links during idle time if the user is not saving data.

  • it helps to reduce the delay between your pages, to minimize browser HTTP requests and enhance your user's web experience.
  • library agnostic.
  • simple: define your routes, start to listen global event and to route changes.
  • base href support.
  • opt-in errorHandler and formHandler.
  • support in all modern browsers.
  • RegExp and nested Routes.

Demo

Simple: https://codepen.io/FabianK/pen/vYxXjwv?editors=1000
Advanced: https://page-transitions-router.netlify.app

Installation

With npm:

$ npm i router-dom

or via CDN:

<script type="module">
  import Router from "https://cdn.skypack.dev/router-dom";
  new Router(...) // see Constructor Documentation
</script>

Usage

<a href="/">Home</a>
<a href="/about">About</a>

<div data-outlet></div>

Dependencies

path-to-regexp: Turn a path string such as '/user/:name' into a regular expression
hydro-js: Renders the view. In order to pass state via an anchor element (data attribute), a mapping on the hydro object is needed.

Documentation

Events

  • window: beforeRouting & afterRouting

Constructor

The router class takes an array with at least one entry. Only the path is mandatory.
Either a template or and element will be rendered in your element with attribute data-outlet.
You can also specifiy one-level of children.
One more interesting property is the restoreScroll. The second argument is the optional object options: it can take a general errorHandler, a formHandler, a fetchOptions for the form and the scrollBehavior. If there is a formHandler, form submits will handled via attributes on the form element and fetch.

const router = new Router([
  {
    path: "/",
    restoreScroll: true, // defaults to true
  },
  {
    path: "/about",
    templateUrl: "/about.html",
    leave: ({ from, to, params, state }) => {},
  },
  {
    path: "/contact/:name",
    element: "<h2>Drop a message on [...]</h2>" // or an actual Node Element,
    beforeEnter: ({ from, to, params, state }) => {},
    afterEnter: ({ from, to, params, state }) => {},
  },
]);

go

  • Takes a path, a state object and optional params. Will redirect to the path.

removeRoute

  • Removes a route from the routes array.

addRoute

  • Adds a route object to the routes array.

modifyRoute

  • Replaces a route with a new one.

changeOptions

  • Replaces the router options.

static getParams

  • Returns the params as key-value pair.

Keywords

FAQs

Package last updated on 26 Sep 2024

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc