pondělí 2. ledna 2017

VueJS 2: píšeme komponentu - zobrazení věku

Vlastní komponenta pomocí VueJS

Zadání

Vytvoříme komponentu, která ze zadaného roku narození vypočítá a zobrazí věk.

Řešení

Poznámka: komponenta bude velmi jednoduchá, jde jen o ukázku; nebudou se kontrolovat vstupní data.

Komponenta se bude jmenovat age, s jedním atributem born (rok narození). Použije se na webové stránce tímto způsobem: <age born="2000"></age>
Výsledkem bude zobrazený věk.

1. krok

Vue.component("age", {
  template: "<span>{{age}}</span>",
});

Do HTML stránky se vykreslí obsah template, tj. <span>{{age}}</span>
Uvnitř spanu je ve dvojitých složených závorkách proměnná age (nemá nic společného s názvem komponenty!). Místo ní se vloží její hodnota, tj. vypočítaný věk.

2. krok, přidání atributu born

Vue.component("age", {
  template: "<span>{{age}}</span>",
  props: ["born"],
});

Přidali jsme do props atribut born, který použije naše komponenta. Tento atribut se chová jako proměnná, jejíž hodnotu zadáme. To nám umožní ji použít  stylem <age born="2000"></age>

3. krok, výpočet věku

Vue.component("age", {
  template: "<span>{{age}}</span>",
  props: ["born"],
  computed: {
    age: function(){
      var actYear = new Date().getFullYear();
      return actYear - this.born;
    }
  }
});

Přidali jsme do computed výpočet age; ve funkci se do lokální proměnné actYear uloží aktuální rok, funkce vrací návratovou hodnotu příkazem return (jako rozdíl mezi aktuálním rokem a rokem narození), která se vloží do proměnné age. Její hodnota (tj. vypočítaná hodnota) se zobrazí mezi dvěma spany. Pozor, atribut born musíme uvnitř funkce zapsat jako this.born

4. použití v HTML

<age born="1974"></age> <age born="2000"></age> <age born="2007"></age>

Výsledek

Jak vypadá výsledek se můžete podívat tady (pokud chcete provést úpravy, nejprve prosím klepněte vpravo nahoře na fork, dostanete tak vlastní kopii).




Žádné komentáře:

Okomentovat