Vue.js

framework From Wikipedia, the free encyclopedia

Vue.js
Remove ads

Vue.js (nebo jen Vue; vyslovuje se vjú, podobně jako view ) je open-source progresivní javascriptový framework pro vytváření uživatelských rozhraní.[2] Začlenění do projektů, které používají jiné javascriptové knihovny je s Vue snadné, protože je navržen tak, aby mohl být přijímán postupně. Vue může také fungovat jako webový aplikační framework, na kterém je možné vytvářet pokročilé Single-page aplikace.

Stručná fakta Vývojář, První vydání ...
Remove ads

Přehled

Vue.js představuje přírůstkově adaptibilní architekturu, která se zaměřuje na deklarativní renderování a složení komponent. Jádro je zaměřeno pouze na zobrazovací vrstvu.[3] Pokročilé funkce, které jsou potřeba pro komplexní aplikace, jako směrování, řízení stavů a automatizace sestavení, jsou dostupné skrze oficiální podporované knihovny a balíky[4], Nuxt.js jako jedno z nejpopulárnějších řešení.[zdroj?]

Vue.js rozšiřuje HTML pomocí HTML atributů takzvaných direktiv.[5] Direktivy nabízí funkcionality do HTML aplikace. Direktivy jsou zabudované do Vue.js nebo uživatelem definované.

Remove ads

Historie

Vue bylo vytvořeno panem Evan You poté, co pracoval pro Google, kde používal AngularJS v nesčetně projektech. Později shrnul svůj myšlenkový proces takto: "Došlo mi, co kdybych mohl vzít pouze tu část, kterou mám opravdu rád na Angular a postavit něco opravdu lehkého k uchopení".[6] V červenci 2013 byl odevzdán k projektu první zdrojový kód a Vue byl poprvé uvolněn následující rok v únoru 2014.

Verze

Další informace Verze, Datum vydání ...
Remove ads

Funkce

Komponenty

Vue komponenty rozšiřují základní HTML prvky do zapouzdřeného znovupoužitelného kódu. Na vysoké úrovni jsou komponenty vlastními prvky, ke kterým Vue kompilátor přiřadí chování. Komponenta ve Vue je vlastně další Vue instance, která má předem dané vlastnosti.[23]

Ukázka kódu níže obsahuje příklad Vue komponenty. Komponenta představuje tlačítko a vytiskne do konzole, kolikrát bylo tlačítko zmáčknuto:

<template>
  <div id="tuto">
    <button-clicked v-bind:initial-count="0"></button-clicked>
  </div>
</template>

<script>
Vue.component('button-clicked', {
  props: ['initialCount'],
  data: () => ({
    count: 0,
  }),
  template: '<button v-on:click="onClick">Clicked {{ count }} times</button>',
  computed: {
    countTimesTwo() {
      return this.count * 2;
    }
  },
  watch: {
    count(newValue, oldValue) {
      console.log(`The value of count is changed from ${oldValue} to ${newValue}.`);
    }
  },
  methods: {
    onClick() {
      this.count += 1;
    }
  },
  mounted() {
    this.count = this.initialCount;
  }
});

new Vue({
  el: '#tuto',
});
</script>

Šablony

Vue používá šablony založené na HTML syntaxi, která dovoluje párovat renderovaný DOM s daty ve Vue instanci. Všechny Vue Šablony jsou platné HTML kódy, které mohou být převáděny pomocí prohlížeče vyhovující specifikacím a HTML převaděčem. Vue kompiluje šablony do virtuálního DOM. DOM dovoluje Vue, aby renderovala komponenty v paměti předtím, než se aktualizuje prohlížeč. Zkombinovaný s reaktivitou systému je Vue schopen spočítat minimální počet komponent, které se budou znovu renderovat. Tímto přístupem aplikuje co nejmenší počet DOM manipulací, když se změní stav aplikace.

Vue uživatelé mohou použít syntaxi šablon nebo přímý zápis renderovacích funkcí pomocí JSX.[24] Render funkce dovolují aplikaci postavení na softwarových komponentách.[25]

Reaktivita

Vue je reaktivní systém který používá čisté JavaScript objekty a optimalizovaný proces znovu renderování. Každá komponenta si udržuje stav jejích reaktivních závislostí během renderování. Systém tak přesně pozná kdy a které komponenty má znovu renderovat.[26]

Přechody

Vue nabízí mnohé způsoby jak aplikovat efekty přechodu, když byla položka vložena, aktualizována nebo odstraněna z DOM. Toto zahrnuje nástroje k:

  • Automatickému aplikování CSS tříd pro přechody a animace
  • Integrování CSS knihoven animací třetích stran, jako Animate.css
  • Používání JavaScript k přímé manipulaci s DOM během napojení přechodů
  • Integrování JavaScript animačních knihoven třetích stran, jako Velocity.js

Když je element který je obalen v přechodové komponentě vložen nebo odstraněn, tak se stane následující:

  1. Vue automaticky zjistí, zda jsou na cílový prvek aplikovány CSS přechody nebo animace. Pokud je to zjištěno, CSS třídy přechodu budou přidány, odstraněny ve vhodném čase.
  2. Pokud komponenta přechodu poskytnula JavaScript napojení, pak tyto napojení budou zavolány ve vhodném čase.
  3. Pokud žádné CSS přechody/animace a JavaScript napojení nebyli zjištěny, DOM operace pro vložení/odstranění budou okamžitě provedeny na dalším snímku.[27][28]

Směrování

Tradiční nevýhoda single-page applications (SPAs) je neschopnost sdílení odkazů s danou podstránkou. Protože SPA prezentují uživatelům pouze jednu URL odpověď ze serveru (typicky to jsou index.html nebo index.vue), je záložkování či sdílení odkazů na danou sekci je velice těžké, skoro nemožné. Pro odstranění tohoto problému se mnoho směrovačů na straně klienta rozhodlo vymezit jejich dynamické URL pomocí "hashbangu" (#!), tzn. page.com/#!/. Avšak s nejmodernějšími HTML5 prohlížeči je podporováno směrování bez hashbangu.

Vue nabízí rozhraní pro změnu toho, co je viděno na stránce vzhledem k dané URL cestě. Nezáleží na tom jak byla změněna ( jestli byla změněna pomocí emailového odkazu, nebo odkazu na stránce). Navíc používáním směrovače na straně klienta dovoluje Vue úmyslné přechody cesty prohlížeče, když se objeví nějaká událost v prohlížeči na tlačítku nebo odkazu. Vue v základu neobsahuje směrovač na straně klienta. Ale existuje "vue-směrovač" balíček s otevřeným zdrojovým kódem, který poskytuje API k aktualizaci URL, podporuje tlačítko zpět, a resetování hesla nebo ověření odkazů emailem s URL parametry. Podporuje mapování vnořených směrovačů pro vnořené komponenty a nabízí odlazenou kontrolu nad přechodem. Pomocí Vue vývojáři stavějí aplikace s malými stavebními bloky a vytváření větší komponenty. S Vue směrovačem musí být komponenty pouze přiřazeny k danému směrovači a daný směrovač poté rozhoduje, kde by se měli renderovat.[29]

<div id="app">
  <router-view></router-view>
</div>
...

<script>
...
const User = {
  template: '<div>User {{ $route.params.id }}</div>'
};

const router = new VueRouter({
  routes: [
    { path: '/user/:id', component: User }
  ]
});
...
</script>

Kód nahoře:

  1. Nastaví směrovač na straně klienta na adresu websitename.com/user/<id>.
  2. Ta se renderuje v User komponentě, která je definována v const User.
  3. Dovolí User komponentě poslat dané ID uživatele, které bylo napsáno v URL pomocí $route klíče objektu: $route.params.id.
  4. Tato šablona (lišící se v parametrech, které jsou poslány do směrovače) bude renderována v <router-view></router-view> uvnitř DOM div#app.
  5. Finálně vygenerované HTML pro někoho, kdo zadal websitename.com/user/1 bude vypadat takto:[30]
<div id="app">
  <div>
    <div>User 1</div>
  </div>
</div>
Remove ads

Ekosystém

Jádro nabízí nástroje a knihovny, které jsou vytvořený vývojovým týmem a přispěvateli.

Oficiální nástroje

  • Devtools – Rozšíření vývojových nástrojů pro debugování Vue.js aplikací v prohlížeči.
  • Vue CLI – Standardní nástroje pro rapidní Vue.js vývoj.
  • Vue Loader – Načítač webových balíčků které dovolují zapisovat Vue komponenty v Single-File Components (SFCs) formátu.

Oficiální knihovny

  • Vue Router – Oficiální směrovač pro Vue.js
  • Vuex – Fluxem inspirovaný centralizovaný manažer stavů pro Vue.js
  • Vue Server Renderer – Renderování na straně serveru pro Vue.js
Remove ads

Související články

Externí odkazy

  • Obrázky, zvuky či videa k tématu Vue.js na Wikimedia Commons

Reference

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads