5.1.0 • Published 6 years ago

deku-router5 v5.1.0

Weekly downloads
15
License
MIT
Repository
github
Last release
6 years ago

deku-router5

High-order components and components for Deku when using router5.

This package replaces router5-deku which is deprecated.

Example

Code Demo

Requirements

  • deku >= 0.5.0
  • router5 >= 2.0.0

routerPlugin

It will add your router instance in context.

import { tree, render } from 'deku';
import element from 'virtual-element';
import { routerPlugin } from 'deku-router5';
import App from './App';
import router from './router';

const myApp = tree()
    .use(routerPlugin(router))
    .mount(element(App));

render(myApp, document.getElementById('app'));

RouteNode HOC

routeNode(nodeName): high-order component to wrap a route node component.

Note: your router needs to use router5-listeners plugin.

import element from 'virtual-element';
import { routeNode } from 'deku-router5';
import { UserView, UserList, NotFound } from './components';

const Users = {
    render(props) {
        const { previousRoute, route } from props;

        switch (route.name) {
            case 'users.list':
                return element(UserList);
            case 'users.view':
                return element(UserView);
            default:
                return element(NotFound);
        };
    }
};

export default routeNode('users')(Users);

Link component

import element from 'virtual-element';
import { Link } from 'deku-router5';

const Menu = {
    render(props) {
        return element('nav', {}, [
            element(Link, { routeName: 'home', routeOptions: { reload: true } }, 'Home'),
            element(Link, { routeName: 'about', routeOptions: { reload: true } }, 'About')
        ]);
    }
}

export default Menu;
5.1.0

6 years ago

5.0.1

6 years ago

5.0.0

7 years ago

4.0.0

8 years ago

3.0.0

8 years ago

2.0.0

8 years ago

1.0.0

9 years ago