2.8.1 • Published 2 years ago

@xlit/router v2.8.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@xlit/router

Vanilla router custom element with multiple routes and middlewares.

Installation

npm i @xlit/router

Getting started

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>@xlit/router</title>
</head>

<body>
  <div id="outlet"></div>

  <template id="homeTemplate">
    <div>
      <h1>Home</h1>
    </div>
  </template>

  <script type="module" src="index.js"></script>
</body>
</html>

Write index.js:

import { Navigator, Router, template, component } from '@xlit/router';

customElements.define('x-login', class Login extends HTMLElement {
  // ...
});

const router = new Router(document.getElementById('outlet'))
  .use(async (ctx, next) => {
    // do something before
    await next();
    // do something after
  })
  // route with template element
  .route('/', template(document.getElementById('homeTemplate'))
  // route with custom element component
  .route('/login', component('x-login'))
  // route with lazy loading component
  .route('/lazy', component('x-lazy', () => import('./lazy.js')));

await Navigator.start(router);

Write lazy.js:

customElements.define('x-lazy', class Lazy extends HTMLElement {
  // ...
});

Navigate

Navigator.push('/foo');
Navigator.replace('/foo');
Navigator.pop();
Navigator.go(1);

Router Mode

Router mode can be configured from mode router options whether use push state history or hash-bang mode. Default value is history.

const defaultRouter = new Router(outlet); // history
const hashRouter = new Router(outlet, { mode: 'hash' }); // hash
const historyRouter = new Router(outlet, { mode: 'history' }); // history
2.6.1

2 years ago

2.6.0

2 years ago

2.8.1

2 years ago

2.6.3

2 years ago

2.8.0

2 years ago

2.6.2

2 years ago

2.6.11

2 years ago

2.6.12

2 years ago

2.6.13

2 years ago

2.6.14

2 years ago

2.6.10

2 years ago

2.7.4

2 years ago

2.7.3

2 years ago

2.7.5

2 years ago

2.5.0

2 years ago

2.7.0

2 years ago

2.5.1

2 years ago

2.7.2

2 years ago

2.7.1

2 years ago

2.6.5

2 years ago

2.6.4

2 years ago

2.6.7

2 years ago

2.6.6

2 years ago

2.6.9

2 years ago

2.6.8

2 years ago

1.0.0

2 years ago

2.3.0

2 years ago

2.2.1

2 years ago

2.0.3

2 years ago

2.2.0

2 years ago

2.0.2

2 years ago

2.4.0

2 years ago

2.3.1

2 years ago

2.2.2

2 years ago

2.0.4

2 years ago

2.1.0

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.2.2

2 years ago

0.1.10

4 years ago

0.1.2

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.9

4 years ago

0.1.4

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago