Vue.js

Vue.js
Logo
VývojářEvan You
První vydáníÚnor 2014
Aktuální verze3.5.13 (15. listopadu 2024)
Operační systémmultiplatformní software
PlatformaCross-platform
Vyvíjeno vJavaScript, TypeScript
Typ softwarusvobodný software, knihovna, javascriptový framework, webový aplikační framework a javascriptová knihovna
LicenceLicence_MIT[1]
Webvuejs.org
Některá data mohou pocházet z datové položky.

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.

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é.

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

Verze Datum vydání Název
3.0 2020-09-180101a 2020-09-18 One Piece [7]
2.6 2019-02-040101a 2019-02-04 Macross [8]
2.5 2017-10-130101a 2017-10-13 Level E [9]
2.4 2017-07-130101a 2017-07-13 Kill la Kill [10]
2.3 2017-04-270101a 2017-04-27 JoJo's Bizarre Adventure [11]
2.2 2017-02-260101a 2017-02-26 Initial D [12]
2.1 2016-11-220101a 2016-11-22 Hunter X Hunter [13]
2.0 2016-09-300101a 2016-09-30 Ghost in the Shell [14]
1.0 2015-10-270101a 2015-10-27 Evangelion [15]
0.12 2015-06-120101a 2015-06-12 Dragon Ball [16]
0.11 2014-11-070101a 2014-11-07 Cowboy Bebop [17]
0.10 2014-03-230101a 2014-03-23 Blade Runner [18]
0.9 2014-02-250101a 2014-02-25 Animatrix [19]
0.8 2014-01-270101a 2014-01-27 [20]
0.7 2013-12-240101a 2013-12-24 [21]
0.6 2013-12-080101a 2013-12-08 VueJS [22]

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>

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

Související články

Externí odkazy

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

Reference

V tomto článku byl použit překlad textu z článku Vue.js na anglické Wikipedii.

  1. vue/LICENSE [online]. [cit. 2017-04-17]. Dostupné online. 
  2. Dostupné online. 
  3. Introduction — Vue.js [online]. [cit. 2020-05-27]. Dostupné online. (anglicky) 
  4. Evan is creating Vue.js | Patreon [online]. [cit. 2017-03-11]. Dostupné online. (anglicky) 
  5. What is Vue.js [online]. [cit. 2020-01-21]. Dostupné online. 
  6. Between the Wires | Evan You. Between the Wires. 2016-11-03. Dostupné v archivu pořízeném dne 2017-06-03. 
  7. v3.0.0 One Piece [online]. GitHub, 2020-09-18 [cit. 2020-09-23]. Dostupné online. 
  8. v2.6.0 Macross [online]. GitHub, 2019-02-04 [cit. 2020-09-23]. Dostupné online. 
  9. v2.5.0 Level E [online]. GitHub, 2017-10-13 [cit. 2020-09-23]. Dostupné online. 
  10. v2.4.0 Kill la Kill [online]. GitHub, 2017-07-13 [cit. 2020-09-23]. Dostupné online. 
  11. v2.3.0 JoJo's Bizarre Adventure [online]. GitHub, 2017-04-27 [cit. 2020-09-23]. Dostupné online. 
  12. v2.2.0 Initial D [online]. GitHub, 2017-02-26 [cit. 2020-09-23]. Dostupné online. 
  13. v2.1.0 Hunter X Hunter [online]. GitHub, 2016-11-22 [cit. 2020-09-23]. Dostupné online. 
  14. v2.0.0 Ghost in the Shell [online]. GitHub, 2016-09-30 [cit. 2020-09-23]. Dostupné online. 
  15. 1.0.0 Evangelion [online]. GitHub, 2015-10-27 [cit. 2020-09-23]. Dostupné online. 
  16. 0.12.0: Dragon Ball [online]. GitHub, 2015-06-12 [cit. 2020-09-23]. Dostupné online. 
  17. v0.11.0: Cowboy Bebop [online]. GitHub, 2014-11-07 [cit. 2020-09-23]. Dostupné online. 
  18. v0.10.0: Blade Runner [online]. GitHub, 2014-03-23 [cit. 2020-09-23]. Dostupné online. 
  19. v0.9.0: Animatrix [online]. GitHub, 2014-02-25 [cit. 2020-09-23]. Dostupné online. 
  20. v0.8.0 [online]. GitHub, 2014-01-27 [cit. 2020-09-23]. Dostupné online. 
  21. v0.7.0 [online]. GitHub, 2013-12-24 [cit. 2020-09-23]. Dostupné online. 
  22. 0.6.0: VueJS [online]. GitHub, 2013-12-08 [cit. 2020-09-23]. Dostupné online. 
  23. Components — Vue.js [online]. [cit. 2017-03-11]. Dostupné online. (anglicky) 
  24. Template Syntax — Vue.js [online]. [cit. 2017-03-11]. Dostupné online. (anglicky) 
  25. Vue 2.0 is Here! [online]. September 30, 2016 [cit. 2017-03-11]. Dostupné online. 
  26. Reactivity in Depth — Vue.js [online]. [cit. 2017-03-11]. Dostupné online. (anglicky) 
  27. Transition Effects — Vue.js [online]. [cit. 2017-03-11]. Dostupné online. (anglicky) 
  28. Transitioning State — Vue.js [online]. [cit. 2017-03-11]. Dostupné online. (anglicky) 
  29. Routing — Vue.js [online]. [cit. 2017-03-11]. Dostupné online. (anglicky) 
  30. YOU, Evan. Vue Nested Routing (2) [online]. [cit. 2017-05-10]. Dostupné online. 

Read other articles:

В Википедии есть статьи о других людях с такой фамилией, см. Ефимов; Ефимов, Валентин. Валентин Ефимов Родился 1948(1948) Гражданство  СССР Позиция защитник, нападающий Клубная карьера[* 1] —1966 Комсомолец 1967 Зенит (Ленинград) 7 (0) 1968—1970 Динамо (Ленинград) 33 (2) 1970 Комсомолец К

 

Sumber referensi dari artikel ini belum dipastikan dan mungkin isinya tidak benar. Mohon periksa, kembangkan artikel ini, dan tambahkan sumber yang benar pada bagian yang diperlukan. (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) Artikel ini bukan mengenai Gunung Welirang. Gunung ArjunoGunung Arjuno dan Welirang dilihat dari puncak Gunung Penanggungan.Titik tertinggiKetinggian3.339 m (10.955 ft)[1]Masuk dalam daftarUltraRibuKoordinat7°42′02″S 112°34

 

Cette page est une très courte ébauche oubliée. À l'instar du célèbre « Une pomme est un fruit » qui a marqué l'histoire de Wikipédia, n'hésitez pas à la développer (comment ?) Vous pouvez également enrichir les pages proposées dans la rubrique « Pommes à croquer » du bistro du jour. Cet article est une ébauche concernant une localité lettonne. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des ...

Чужа ріднярос. Чужая родня Жанр МелодрамаДрамаРежисер Михайло ШвейцерСценарист Володимир ТендряковУ головних ролях Микола РибниковНонна МордюковаМикола СергієвОлександра ДенисоваОлена МаксимоваСтепан КриловЛюбов МалиновськаЛеонід КмітЛеонід БиковВолодимир Гуляє

 

The minister for transport (French: ministre des transports) was a position in the Luxembourgian cabinet. The minister for transport was responsible for maintenance and revision of the road network, operation of public transport, and regulation of aviation and waterways. On 23 July 2009, the position was merged with those of the Ministry for the Environment and Minister for Public Works to form the new position of Minister for Sustainable Development and Infrastructure, under Claude Wiseler. ...

 

  لمعانٍ أخرى، طالع جيريمي جونز (توضيح). هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يوليو 2019) جيريمي جونز معلومات شخصية الميلاد 2 يناير 1976 (47 سنة)  سان كارلوس، سان ماتيو، كاليفورنيا  مواطنة الولايات الم...

Measure of local oscillation behavior Not to be confused with Total variation distance of probability measures. This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: Total variation – news · newspapers · books · scholar · JSTOR (February 2012) (Learn how and when to remove this template message) In mathematics, the total variation identifies several slightly ...

 

Untuk tempat lain yang bernama sama, lihat (disambiguasi). AmbarawaKecamatanPeta lokasi Kecamatan AmbarawaNegara IndonesiaProvinsiJawa TengahKabupatenSemarangPemerintahan • CamatEka Jaya SaktiPopulasi • Total58,767 jiwa (2.012) jiwaKode Kemendagri33.22.10 Kode BPS3322100 Desa/kelurahan2/8 Ambarawa (Jawa: ꦄꦩ꧀ꦧꦫꦮ, translit. Ambarawa) adalah sebuah kota kecamatan yang terletak di Kabupaten Semarang, Jawa Tengah, Indonesia.[1] Pada era ker...

 

Novel by Wolfgang Koeppen This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (July 2019) (Learn how and when to remove this template message) Death in Rome Book coverAuthorWolfgang KoeppenOriginal titleDer Tod in RomCountryGermanyLanguageGermanGenreNovelSet inRome, post-WWIIPublisherStuttgart: Scherz und Goverts VerlagPublication date1954Media type...

  لمعانٍ أخرى، طالع ألكسندر فولكوف (توضيح). ألكسندر فولكوف (بالروسية: Алекса́ндр Во́лков)‏    معلومات شخصية الميلاد 3 مارس 1967  كالينينغراد  الوفاة 19 أكتوبر 2019 (52 سنة) [1]  كالينينغراد  الطول 188 سنتيمتر  الإقامة كالينينغراد  الجنسية روسيا (1991–2019) ال...

 

Sir Thomas North Dick Lauder of Fountainhall, 9th Baronet KStJ (28 April 1846 – 19 June 1919) was a Scottish aristocrat and a Knight of Justice in the Order of St. John of Jerusalem Life Thomas North Dick-Lauder was born on 28 April 1846 in Grange House, Grange, Edinburgh. He was the eldest son of Sir John Dick-Lauder, 8th Baronet and Lady Anne Dalrymple, the second daughter of North Dalrymple, 9th Earl of Stair.[1] He was baptised 12 June at St Cuthbert's, Edinburgh. On 27 Septembe...

 

Novelette by Isaac Asimov Bicentennial Man redirects here. For the film adaptation, see Bicentennial Man (film). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: The Bicentennial Man – news · newspapers · books · scholar · JSTOR (February 2017) (Learn how and when to remove this template message) The Bicenten...

Grocery store chain based in Houston, Texas This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Rice Epicurean Markets – news · newspapers · books · scholar · JSTOR (September 2008) (Learn how and when to remove this template message) Rice Epicurean Markets Weslayan - 206, west of River Oaks (closed, currently a...

 

2008 video gameSpace Bust-a-MoveNorth American cover artDeveloper(s)Lancarse[1]Publisher(s)JP: TaitoWW: Square Enix[2]SeriesPuzzle BobblePlatform(s)Nintendo DSReleaseJP: December 18, 2008NA: July 28, 2009EU: August 28, 2009Genre(s)PuzzleMode(s)Single-player, multiplayer Space Bust-A-Move is a puzzle video game developed by Lancarse and published by Taito in Japan, and Square Enix worldwide for the Nintendo DS. It was first released in Japan under the title Space Puzzle Bobble ...

 

Extinct Southern Great Andamanese of India BaleAkar-BaleNative toIndiaRegionAndaman Islands; Ritchie’s Archipelago, Havelock Island, Neill Island.Extinctbetween 1931 and 1951[1]Language familyGreat Andamanese Southern †BaleLanguage codesISO 639-3aclGlottologakar1243 The Bale language, Akar-Bale (also Balwa), is an extinct Southern[2] Great Andamanese language once spoken in the Andaman Islands in Ritchie's Archipelago, Havelock Island, and Neill Island. History The Ba...

Church in Rogaland, NorwaySt. Johannes ChurchSaint John's ChurchSankt Johannes kirkeView of the church58°58′07″N 5°44′57″E / 58.968697°N 5.749103°E / 58.968697; 5.749103LocationStavanger Municipality,RogalandCountryNorwayDenominationChurch of NorwayChurchmanshipEvangelical LutheranHistoryStatusParish churchFounded1909Consecrated1909ArchitectureFunctional statusActiveArchitect(s)Hans Jacob SparreArchitectural typeLong churchCompleted1909 (114 years ...

 

Buddhist pagoda in Anqing city, China Zhenfeng Pagoda Zhenfeng pagoda from the river (pre-1929). The Zhenfeng Pagoda (simplified Chinese: 振风塔; traditional Chinese: 振風塔; pinyin: Zhènfēng Tǎ) in Anqing City, Anhui Province, People's Republic of China, is a Buddhist pagoda originally built in 1570 during the Ming Dynasty. Due to its location near a bend in the Yangtze River, the pagoda was formerly used as a lighthouse, and contains niches for lanterns.[1] Afte...

 

Moscow Metro station Ploshchad RevolyutsiiПлощадь РеволюцииMoscow Metro stationGeneral informationLocationTverskoy DistrictCentral Administrative OkrugMoscowRussiaCoordinates55°45′24″N 37°37′18″E / 55.7566°N 37.6216°E / 55.7566; 37.6216Owned byMoskovsky MetropolitenLine(s) Arbatsko-Pokrovskaya linePlatforms1 island platformTracks2ConstructionStructure typePylon stationDepth33.6 metres (110 ft)Platform levels1ParkingNoArchitectAlexe...

For the World War II operation with the same name, see Voronezh–Kastornoye operation. Voronezh–Kastornoye operationPart of Southern Front of the Russian Civil WarFront in Summer 1919Date13 October–16 November 1919LocationVoronezh Governorate, RussiaResult Decisive Red victoryBelligerents  Russian SFSR Commune of the Working People of Estonia[1] Armed Forces of South RussiaCommanders and leaders Alexander Yegorov Semyon Budyonny Grigori Sokolnikov Ieronim Uborevich Anton Den...

 

La Chaise-Dieu Entidad subnacional Escudo La Chaise-DieuLocalización de La Chaise-Dieu en Francia Coordenadas 45°19′17″N 3°41′48″E / 45.321388888889, 3.6966666666667Entidad Comuna de Francia • País  Francia • Región Auvernia • Departamento Alto Loira • Distrito Distrito de Brioude • Cantón Cantón de Chaise-DieuAlcalde Robert Flauraud(2001-2008)Superficie   • Total 13,58 km² Altitud   • Media 1...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!