Animacija više elemenata odjednom „transition-group“

Renderovanje liste se veoma često koristi u programiranju, najčešće je to dinamičko prikazivanje listi kada se renderuje serija slično grupisanih informacija.
U ovom članku je objašnjeno kako animirati takve liste sa Vue.js frameworkom. Za animaciju više elemenata ne možemo koristiti komponentu “transition”, jer ona može da “obavije” SAMO JEDAN HTML element, stoga Vue.js uvodi novi tip wrapper komponente, pod nazivom .

Tranzicija pri zameni elemenata sa Vue.js

Pri tranziciji se promena svojstva na oba elementa dešava istovremeno. Usled čega su oba elementa vidljiva za vreme animacije (što nije baš najlepše). Novi element koji tek treba da se prikaže je uvek pozicioniran ispod elementa koji nestaje. Neprirodno je to što taj elemenat dolazi na pravo mesto tek kada prvi element skroz nestane tj. kada se završi animacija (pa se tada primeti skok elementa).
Da bi se izbeglo ovakvo ružno ponašanje potrebno je da elemenat koji nestaje potpuno završi animaciju, pre nego što počne animacija elementa koji se pojavljuje. Vue.js ovo postiže definisanjem tzv. moda tranzicije.
Postoje dve mogućnosti za vrednost atributa “mode”:

Osnove animacije sa Vue.js

Vue.js ima mehanizme za jednostavno integrisanje CSS animacije nad HTML elementom. Vue.js omogućava CSS animaciju tako što automatski dodaje specifične klase HTML elementu u odredjenem trenutku animacije, nakon čega možemo preko njih da se definišemo CSS svojstva za animaciju.
Pored toga Vue.js omogućava animaciju sa JavaScript-om jer sa “transition hooks” (“custom events” koje “okida” Vue.js prema utvrdjenom tajmingu animacije) omogućava korišćenje JavaScript-a za direktnu manipulaciju DOM-om.
Takodje uz Vue.js postoji mogućnost da se jednostavno integrišu 3rd-party CSS biblioteke za animaciju (npr. Animate.css) ili 3rd-party JavaScript biblioteke za animaciju (npr. Velocity.js ili GreenSock).

Filtriranje sa Vue.js

Vue filter je u suštini funkcija koja uzima vrednost, obrađuje je, a zatim vraća obrađenu vrednost. Filteri nisu zamene za metode, computed properties ili watch svojstva, jer filteri ne transformišu podatke, već samo transformiše izlaz koji korisnik vidi. Filteri mogu da se nadovezuju jedan na drugi i kao sve funkcije mogu da prime argumente. Kada se koristi filter, njegov kontekst je postavljen na instancu koja se poziva na njega, stoga i ključna reč “this” ukazuje na nju.

Animacija sa CSS svojstvom „transition“

CSS Transitions (srp. tranzicija) je najjednostavniji način animacije sa CSS-om. Tranzicija se koristi da ublaži naglu promenu vrednosti izabranog CSS svojstva u određenom vremenskom periodu, tako što postepeno menja vrednosti CSS svojstva. Ovaj mehanizam pokrivaju četri svojstva: transition-property (obavezno), transition-duration (obavezno), transition-timing-function (opciono) i transition-delay (opciono).

Vue.js mixin

Šta je mixin?

Napomena za Vue 3 (2026): Za novi Vue 3 kod preferirajte composables (Composition API, npr. useXxx()) umesto mixin-a. Mixini i dalje rade sa Options API-jem, ali su zavisnosti manje eksplicitne.

vue mixin

Mixin-i su „reusable“ delovi koda koji mogu da se višekratno iskoriste u bilo kojoj Vue komponenti ili instanci. Vue.js mixin je u stvari objekat koji može sadržati sva svojstva kao i options objekat instance/komponente: data, methods, computed…
„Mixin“ se koriste za:

  • Kreiranje zajedničikh svojstva (metoda, data…), koje se koriste u različitim komponentama i tako omoguće poštovanje DRY („Don’t Repeat Yourself“) principa.
  • Pri kreiranje plugina koje imaju potrebu da modifikuju postojeću Vue instancu, jer mogu jednostaavno da dodaju nove funkcionalnosti.
Domen mixin-a

Mixin se integriše u instancu (komponentu) tako što se u komponentu ugradi kopija koda napisanog u mixin-u. Ovo povlači zaključak da je kod koji je došao u komponetu iz mixina potpuno odvojen i nezavisan kako od samog mixina tako i od koda ugradjenog u ostale komponente.

Read more

Uvod u animaciju sa CSS-om

Kako se izvodi animacija sa CSS-om Animacija pokretana iz CSS je nastala kao potreba front-end programera da imaju mogućnost definisanja ove interakcije bez upotrebe JavaScript-a ili eventualno zastarelog Flash-a. Dva glavna svojstva omogućavaju animaciju iz CSS-a: transition animation Svojstvo „transitions“ (srp. tranzicija) je najjednostavniji način animacije sa CSS-om. Tranzicija se koristi da ublaži naglu promenu … Read more

Dinamičke komponente

Sintaksa za dinamičke komponente Dinamičke komponente u Vue-u omogućavaju vam da navedete jedno mesto HTML-u kao placeholder za različite komponente, nakon čega user/aplikacija može dinamički birati koju želi komponentu da prikaže. Sintaksa dinamičkih komponenti veoma liči na sintaksu „slot“ mehanizma, stim što u ovome slučaju je tzv. placeholder HTML elemenat <component></component>. Izbor željene komponente se … Read more

Prosledjivanje sadržaja sa slot elementom

Uvod Jedan od načina je da se prosledi sadržaj iz parent komponete je da se ubaci izmedju custom tag-a koji predstavlja instancu komponente. Ovaj mehanizam se koristi kada imamo slične komponente koje se razlikuju samo po sadržaju, jer tako izbegavamo pravljenje dve odvojene komponente. Child komponenta prihvata prosledjen sadržaj, a „slot“ elemenat joj definiše mesto … Read more