Vaše spolehlivé vývojářské oddělení

#3 Data a metody

20.02.2019

Jak pracovat s daty a metodami ve Vue instanci si povíme v tomto díle. Při vytváření Vue instance můžeme definovat více objektů, například data a metody. Jak pracovat s daty jsme si již ukázali v díle Integrace Vue do projektu.

Data

Hodnoty, které nastavíme v objektu data jsou předány Vue instanci při jejím vytváření jako výchozí. Jedná se ale o reaktivní vlastnosti. To znamená že pokud v průběhu změníme hodnotu v datech, tak se automaticky aktualizuje i na místě kde je hodnota vypisována. Oproti jQuery nemusíme řešit znovu vykreslení.

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title>Vue.js kurz</title>
   <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
   {{ name }}
</div>
</body>
<script>
   var app = new Vue({
       el: '#app',
       data: {
           name: 'David'
       }
   })
</script>
</html>

[GitHub]

Metody

Kromě dat můžeme do instance Vue.js přidat i objekt methods. Tento objekt bude mít jako klíče názvy metod a jako hodnoty functions. Příklad lze vidět na jednoduché ukázce.

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title>Vue.js kurz</title>
   <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
   {{ name }}, {{ getNameSurname() }}
</div>
</body>
<script>
   var app = new Vue({
       el: '#app',
       data: {
           name: 'David'
       },
       methods: {
           getNameSurname(){
               return 'David Krupička';
           }
       }
   })
</script>
</html>

[GitHub]

Metody můžeme volat jednoduše {{ nazevMetody() }} a je možné jim předávat i parametry. Na dalším příkladu si můžete všimnout volání metody, které předáváme dva parametry. Metoda spojuje tyto stringy a vrací je jako jeden string.

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title>Vue.js kurz</title>
   <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
   {{ name }}, {{ getNameSurname("David", "Krupička") }}
</div>
</body>
<script>
   var app = new Vue({
       el: '#app',
       data: {
           name: 'David'
       },
       methods: {
           getNameSurname(name, surname){
               return name + surname;
           }
       }
   })
</script>
</html>

[GitHub]

V metodách můžeme také pracovat s daty a to pomocí klíčového slova this.

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title>Vue.js kurz</title>
   <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
   {{ getName() }}
</div>
</body>
<script>
   var app = new Vue({
       el: '#app',
       data: {
           name: 'David'
       },
       methods: {
           getName(){
               return this.name;
           }
       }
   })
</script>
</html>

[GitHub]

Reaktivní systém Vue

Ukázali jsme si jak fungují data a metody. Nyní se podíváme, jak pracovat s reaktivním systémem Vue.js. Do dat nastavíme výchozí hodnotu “vypnuto” a budeme chtít tuto hodnotu změnit na “zapnuto” po kliknutí na tlačítko.

Na další ukázce můžete vidět v- syntaxi. Zde využíváme v-on:click pro zavolání metody po kliknutí na tlačítko. V metodě se pouze změní data, o vykreslení dat se již postará Vue.js. Nám tak odpadá starost o vykreslování a řádky kódu, které bychom museli psát pro vykreslení.

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title>Vue.js kurz</title>
   <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
   {{ status }}
   <button v-on:click="turnOn">Zapnout</button>
</div>
</body>
<script>
   var app = new Vue({
       el: '#app',
       data: {
           status: 'Vypnuto'
       },
       methods: {
           turnOn(){
               this.status = 'Zapnuto';
           }
       }
   })
</script>
</html>

[GitHub]

V dalším díle se podíváme na trochu složitější příklad. Pokud nechcete, aby Vám další díl utekl tak mě můžete sledovat na Twitteru.


Komentáře

Žádne komentáře

Zanechte komentář


Facebook Nenechte si ujít žádnou novinku a sledujte nás na Facebooku.

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte.
V pořádku Další informace

Nenašli jste co jste hledali?