Vue Router
Vue Router pozwala na wyświetlanie poszczególnych podstron aplikacji
osobny, dodatkowy package do Vue – vue-router
w pliku router/index.js zamieszczamy:
impor Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorld' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld, } ] })
użycie:
<router-link :to="{ name: 'About' }">About</router-link>
dzięki :to – pozwala na zmianę linku urla i odwoływanie się poprzez nazwę co daje wiekszą swobodę
obiekt watch – do obserwowania zmian w path
$router – trzyma całą historię navigacji
#/ – symbol przed linkiem
bez hasha – about
z hashem – #/about – nie wysyła zapytania do serwera tylko podaje swój komponent, aby nie było symbolu hasa w definicji Routera podajemy mode: 'history’
po deployu na środowisku produkcyjne trzeba zmienić by zachowanie było dalej poprawne
Route Guards
- beforeEnter – funkcja z trzema parametrami :
- to – komponent do którego kierujemy
- from – skąd kierujemy
- next – funkcja co chcemy zrobić jako następny krok
//beforeEnter beforeEnter: (to, from, next) => { if(to.params.name) { next() } else { next({ name: 'Welcome' }) } }
stylowanie i klasy
vue-router dodaje klasy do aktywnego linku:
- router-link-active – w urlu występuje scieżka do strony z linku, ale może być jako rodzic
- router-link-exact-active – jest to dokładnie to odwołanie na jakie wskazuje link
Hope this helps and happy coding :)