Home Reference Source

Basic usage router

/components/layout/template.html

<section class="layout">
  <span class="url"></span>
  <a href="/link1" data-modux-link="">LINK 1</a>
  <a href="/link2" data-modux-link="">LINK 2</a>
  <a href="/link3" data-modux-link="">LINK 3</a>
</section>

/components/layout/index.js


'use strict'

import { Component } from '@crispcode/modux'

import template from './template.html'

export class Layout extends Component {
  get template () {
    return template
  }

  onStateChange ( url ) {
    this.element.querySelector('.url').innerHTML = url.toString()
  }
}

/app.js


/* globals window, document */

'use strict'

import { Module } from '@crispcode/modux'

import { Layout } from './components/layout'

let initialize = () => {

  // Create application
  let app = new Module( 'app' )
  app
    .addDependency( 'layout', Layout )

  // Start application
  app.bootstrap( document.querySelector( 'body' ), 'layout' )
}

window.addEventListener( 'load', () => {
  initialize()
} )