En aquest tema, aprendrem a configurar Vue Router, una biblioteca essencial per gestionar la navegació en aplicacions Vue.js d'una sola pàgina (SPA). Vue Router ens permet definir rutes i associar-les amb components, facilitant la creació d'aplicacions amb múltiples vistes.
- Instal·lació de Vue Router
1.1. Utilitzant Vue CLI
Si has creat la teva aplicació Vue utilitzant Vue CLI, pots afegir Vue Router durant el procés de creació del projecte. Si no ho has fet, pots afegir-lo posteriorment amb el següent comandament:
1.2. Instal·lació manual
Si prefereixes instal·lar Vue Router manualment, pots fer-ho amb npm o yarn:
o
- Configuració bàsica de Vue Router
2.1. Creació de l'arxiu de rutes
Primer, crea un arxiu router/index.js
on definiràs les rutes de la teva aplicació:
// src/router/index.js import { createRouter, createWebHistory } from 'vue-router'; import Home from '../views/Home.vue'; import About from '../views/About.vue'; const routes = [ { path: '/', name: 'Home', component: Home }, { path: '/about', name: 'About', component: About } ]; const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes }); export default router;
2.2. Integració de Vue Router a l'aplicació
Després, integra Vue Router a la teva aplicació Vue. Obre el fitxer main.js
i afegeix el router a la instància de Vue:
// src/main.js import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App) .use(router) .mount('#app');
- Creació de components de vista
Crea els components que es mostraran quan es navegui a les diferents rutes. Per exemple, crea dos fitxers de components Home.vue
i About.vue
dins de la carpeta views
:
<!-- src/views/Home.vue --> <template> <div> <h1>Home</h1> <p>Benvingut a la pàgina principal!</p> </div> </template> <script> export default { name: 'Home' }; </script>
<!-- src/views/About.vue --> <template> <div> <h1>About</h1> <p>Aquesta és la pàgina sobre nosaltres.</p> </div> </template> <script> export default { name: 'About' }; </script>
- Utilització de
<router-link>
i <router-view>
<router-link>
i <router-view>
4.1. Navegació amb <router-link>
Utilitza el component <router-link>
per crear enllaços de navegació entre les rutes definides:
<!-- src/App.vue --> <template> <div id="app"> <nav> <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> </nav> <router-view></router-view> </div> </template> <script> export default { name: 'App' }; </script>
4.2. Renderització de vistes amb <router-view>
El component <router-view>
és on es renderitzaran els components associats a les rutes. En l'exemple anterior, <router-view>
es troba dins del fitxer App.vue
.
- Exercici pràctic
5.1. Objectiu
Crea una aplicació Vue amb dues pàgines: "Home" i "About". Configura Vue Router per gestionar la navegació entre aquestes pàgines.
5.2. Passos
- Crea una nova aplicació Vue utilitzant Vue CLI o qualsevol altre mètode.
- Instal·la Vue Router.
- Defineix les rutes per a les pàgines "Home" i "About".
- Crea els components
Home.vue
iAbout.vue
. - Afegeix enllaços de navegació utilitzant
<router-link>
. - Renderitza les vistes utilitzant
<router-view>
.
5.3. Solució
Segueix els passos descrits anteriorment per configurar Vue Router i crear els components de vista. Aquí tens un resum del codi:
// src/router/index.js import { createRouter, createWebHistory } from 'vue-router'; import Home from '../views/Home.vue'; import About from '../views/About.vue'; const routes = [ { path: '/', name: 'Home', component: Home }, { path: '/about', name: 'About', component: About } ]; const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes }); export default router;
// src/main.js import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App) .use(router) .mount('#app');
<!-- src/App.vue --> <template> <div id="app"> <nav> <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> </nav> <router-view></router-view> </div> </template> <script> export default { name: 'App' }; </script>
<!-- src/views/Home.vue --> <template> <div> <h1>Home</h1> <p>Benvingut a la pàgina principal!</p> </div> </template> <script> export default { name: 'Home' }; </script>
<!-- src/views/About.vue --> <template> <div> <h1>About</h1> <p>Aquesta és la pàgina sobre nosaltres.</p> </div> </template> <script> export default { name: 'About' }; </script>
- Conclusió
En aquesta secció, hem après a configurar Vue Router per gestionar la navegació en una aplicació Vue.js. Hem vist com definir rutes, crear components de vista i utilitzar <router-link>
i <router-view>
per a la navegació i renderització de vistes. Amb aquests coneixements, estàs preparat per crear aplicacions Vue.js amb múltiples pàgines i una navegació fluida. En el següent tema, explorarem les rutes dinàmiques per fer les nostres aplicacions encara més flexibles.
Curs de Vue.js
Mòdul 1: Introducció a Vue.js
- Què és Vue.js?
- Configuració de l'entorn de desenvolupament
- Creant la teva primera aplicació Vue
- Entenent la instància de Vue
Mòdul 2: Conceptes bàsics de Vue.js
- Sintaxi de plantilles
- Enllaç de dades
- Propietats computades i observadors
- Enllaços de classes i estils
- Renderització condicional
- Renderització de llistes
Mòdul 3: Components de Vue.js
- Introducció als components
- Props i esdeveniments personalitzats
- Slots
- Components dinàmics i asíncrons
- Comunicació entre components
Mòdul 4: Vue Router
- Introducció a Vue Router
- Configuració de Vue Router
- Rutes dinàmiques
- Rutes niades
- Guàrdies de navegació
Mòdul 5: Gestió d'estat amb Vuex
- Introducció a Vuex
- Estat, getters, mutacions i accions
- Mòduls a Vuex
- Utilitzant Vuex en components
- Patrons avançats de Vuex
Mòdul 6: Directives de Vue.js
Mòdul 7: Plugins de Vue.js
Mòdul 8: Proves en Vue.js
Mòdul 9: Conceptes avançats de Vue.js
- Funcions de renderització i JSX
- Renderització del costat del servidor (SSR) amb Nuxt.js
- API de composició de Vue 3
- Optimització del rendiment