0.0.19 • Published 6 years ago

track-component v0.0.19

Weekly downloads
2
License
ISC
Repository
github
Last release
6 years ago

TrackComponent

Component for track. This component is based on the Component of Mithril.js.

Build Status

Installation

npm

npm install track-component

Usage

Write Component

app/components/hoge.js

const TrackComponent = require('track-component');

class HogeComponent extends TrackComponent {
  static definer() {
    name('hoge'); // Define model name. **Required**
  }
}

Write view

app/views/hoge.js

function(component) {
  return m('div', [
    m('h1', 'Hello!'),
  ]);
}

Use multiple views.

hoge_component.js

class HogeComponent extends TrackComponent {
  static definer() {
    name('hoge');        // Define model name. **Required**
    views('outer_hoge'); // Append view.
    views('inner_hoge'); // Append view.
  }
}

app/views/outer_hoge.js

function(component, pipe, _yield) {
  return m('div', [
    m('h1', `Hello ${pipe.name}!`),
    _yield,
  ]);
}

views/inner_hoge.js

function(component, pipe) {
  pipe.name = 'hoge'
  return m('p', 'yes!');
}

Use ViewModel

Write ViewModel

view_models/hoge.js

const TrackModel = require('track-view-model');

class Hoge extends TrackModel {
  static definer() {
    name('hoge'); // Define model name. **Required**
    accessor('piyo'); // Define `hoge.piyo` and `hoge.piyo=`
  }
}

Set value in component.

app/components/hoge.js

class HogeComponent extends TrackComponent {
  static definer() {
    name('hoge');
    views('hoge');
  }

  oninit() {
    this.vm.piyo = 'PIYO!!!!!PIYO!!!!!';
    return super.oninit();
  }
}

Get value in view

app/views/hoge.js

// @note Binding instance of view model.
function(component) {
  return m('div', [
    m('h1', this.piyo),
  ]);
}

Assign global(window) event

const TrackComponent = require('track-component');

class HogeComponent extends TrackComponent {
  static definer() {
    name('hoge');                // Define model name. **Required**
    event('scroll', 'onScroll'); // Add event listener for global(window).
  }

  onScroll(e) {
    console.log(e);
  }
}

Mithril lifecycle method

const TrackComponent = require('track-component');

class HogeComponent extends TrackComponent {
  static definer() {
    name('hoge'); // Define model name. **Required**
  }

  oninit() {
    super.oninit(); // Must call when Override lifecycle methods of Mithril.
  }
}

onattrschanged

This is track-component lifecycle method.

The onattrschanged() hooks is called after change component attributes.

onattrschanged(newly, older) {
  // call
}
0.0.19

6 years ago

0.0.18

6 years ago

0.0.17

6 years ago

0.0.16

6 years ago

0.0.15

6 years ago

0.0.14

6 years ago

0.0.13

6 years ago

0.0.12

6 years ago

0.0.11

6 years ago

0.0.10

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago