1.3.2 • Published 3 years ago

lit-elem-router v1.3.2

Weekly downloads
3
License
MIT
Repository
github
Last release
3 years ago

lit-elem-router

Simple, lightweight router written to be used with web components. Supports lazy loading.

Usage

Install the package

npm i lit-elem-router

Import router in your component class

import 'lit-elem-router';

Create a layout for your page

<lit-router>
    <lit-route path="/" tag-name="app-home"></lit-route>
    <lit-route path="/register" tag-name="app-register"></lit-route>
    <lit-route path="/login" tag-name="app-login"></lit-route>
</lit-router>

You can nest routers

<lit-router>
    <lit-route path="/" tag-name="app-home"></lit-route>
    <lit-route path="/auth" tag-name="app-auth"></lit-route>
</lit-router>

Now in AppAuth.js you can have

<lit-router>
    <lit-route path="/auth/register" tag-name="app-register"></lit-route>
    <lit-route path="/auth/login" tag-name="app-login"></lit-route>
<lit-router>

Lazy loading can be done by listening to the route activation:

<lit-router>
    <lit-route path="/"
               tag-name="app-home-page"
               @activate="${this._loadHome}"></lit-route>
    <lit-route path="/register"
               tag-name="app-register-page"
               @activate="${this._loadRegister}">
    </lit-route>
</lit-router>

Now you can load your components:

function _loadHome() {
    import('./pages/app-home-page');
}

If you want a default route, that will be activated if nothing else matches the path, you can use ** as a fragment in your path

<lit-router>
    <lit-route path="/home" tag-name="app-home-page"></lit-route>
    <lit-route path="/register" tag-name="app-register-page"></lit-route>
    <lit-route path="/**" tag-name="app-404-page"></lit-route>
</lit-router>

No navigate using js, you can use static functions provided by Router

// To go to /register
Router.navigate('/register');
// To return to the prev location
Router.back();

Router supports parameters in url like node or angular:

<lit-router>
    <lit-route path="/user/:id" tag-name="app-home-page"></lit-route>
</lit-router>

Feel free to open an issue if you need help, or you found a bug

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.2

3 years ago

1.2.0

3 years ago

1.2.1

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.10

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago