Vue 2 podstawy - pętle, warunki
Kolejny artykuł na temat podstaw Vue 2. Opiszę pętle i warunki. Spójrzmy na poniższy kod. Pokazuje on jak przeiterować się przez tablicę. W vue używamy atrybutu v-for.
<div id="root">
    <ul>
        <li v-for="name in names">
            {{ name }}
        </li>
    </ul>
</div>
Natomiast w javascript:
let app = new Vue({
	el: '#root',
	data: {
		names: ['Joe', 'Mary', 'James', 'Jack']
	}
});
Dodamy teraz przycisk, którym będziemy dodawać elementy do naszej listy.
<ul>
	<li v-for="name in names">
		{{ name }}
	</li>
</ul>
<input type="text" v-model="newName">
<button @click="addName">Add name</button>
Kod js obsługujący dodawanie do tablicy.
let app = new Vue({
	el: '#root',
	data: {
		newName: '',
		names: ['Joe', 'Mary', 'James', 'Jack']
	},
	methods: {
		addName() {
			this.names.push(this.newName);
			this.newName = '';
		}
	}
});
Jak widać powyżej po kliknięciu na button wywołuje się metoda addName. Dzięki
połączeniu danych z pola tekstowego za pomocą v-model
dodajemy nowe wpisane imię do naszej tablicy z imionami (names).
Wszystko się dynamicznie aktualizuje dzięki Vue.
Tak jak w każdym języku programowania w vue mamy do dyspozycji instrukcje warunkowe.
Najlepiej pokażę to na przykładach.
Przykład v-if v-else:
<h1 v-if="zm">widoczne jesli zm true</h1> <h1 v-else>zm false</h1>Jeśli zm będzie true pokaże się pierwszy tag h1 w przeciwnym wypadku drugi. Ponieważ v-if jest dyrektywą, musi być dołączona do jednego elementu. Ale co, jeśli chcemy przełączyć więcej niż jeden element? W tym przypadku możemy użyć v-if na elemencie template, który służy jako niewidzialne opakowanie. Ostatecznie renderowany wynik nie będzie zawierał elementu template.
<template v-if="ok"> <h1>Title</h1> <p>Paragraph 1</p> <p>Paragraph 2</p> </template>Istnieje również konstrukcja v-else-if.
<div v-if="type === 'Lorem'"> Lorem </div> <div v-else-if="type === 'Ipsum'"> Ipsum </div> <div v-else-if="type === 'Dolor'"> Dolor </div> <div v-else> Coś innego </div>
