2.8.1 • Published 6 months ago

@xlit/router v2.8.1

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months 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

9 months ago

2.6.0

9 months ago

2.8.1

6 months ago

2.6.3

9 months ago

2.8.0

6 months ago

2.6.2

9 months ago

2.6.11

8 months ago

2.6.12

7 months ago

2.6.13

7 months ago

2.6.14

7 months ago

2.6.10

8 months ago

2.7.4

7 months ago

2.7.3

7 months ago

2.7.5

7 months ago

2.5.0

10 months ago

2.7.0

7 months ago

2.5.1

10 months ago

2.7.2

7 months ago

2.7.1

7 months ago

2.6.5

8 months ago

2.6.4

9 months ago

2.6.7

8 months ago

2.6.6

8 months ago

2.6.9

8 months ago

2.6.8

8 months ago

1.0.0

12 months ago

2.3.0

12 months ago

2.2.1

12 months ago

2.0.3

12 months ago

2.2.0

12 months ago

2.0.2

12 months ago

2.4.0

12 months ago

2.3.1

12 months ago

2.2.2

12 months ago

2.0.4

12 months ago

2.1.0

12 months ago

2.0.1

12 months ago

2.0.0

12 months ago

0.2.1

1 year ago

0.2.0

1 year ago

0.2.2

1 year ago

0.1.10

2 years ago

0.1.2

3 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.1.4

3 years ago

0.1.6

2 years ago

0.1.5

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago