Introducció a Vue.js
Vue.js és un framework progressiu per a la construcció d'interfícies d'usuari. A diferència d'altres frameworks monolítics, Vue està dissenyat des de zero per ser adoptable de manera incremental. La seva biblioteca principal només se centra en la capa de vista, però és fàcilment escalable amb una biblioteca d'ecosistema que cobreix funcions avançades com el routing i la gestió d'estat.
Característiques Clau de Vue.js
- Reactivitat: Vue utilitza un sistema de reactivitat basat en dades, que actualitza automàticament la vista quan les dades canvien.
- Components: Vue permet crear components reutilitzables que encapsulen HTML, CSS i JavaScript.
- Directives: Vue proporciona directives com
v-bind
iv-model
per manipular el DOM de manera declarativa. - Ecosistema: Inclou eines com Vue Router per al routing i Vuex per a la gestió d'estat.
Configuració del Projecte Vue.js
Instal·lació de Vue CLI
Vue CLI és una eina estàndard per inicialitzar i gestionar projectes Vue.js. Per instal·lar Vue CLI, necessites tenir Node.js i npm instal·lats.
Creació d'un Nou Projecte
Un cop instal·lat Vue CLI, pots crear un nou projecte amb el següent comandament:
Segueix les instruccions per configurar el projecte segons les teves necessitats.
Estructura d'un Projecte Vue.js
Un projecte Vue típic té l'estructura següent:
my-vue-app/ ├── node_modules/ ├── public/ │ └── index.html ├── src/ │ ├── assets/ │ ├── components/ │ ├── App.vue │ └── main.js ├── .gitignore ├── babel.config.js ├── package.json └── README.md
- public/index.html: El fitxer HTML principal.
- src/main.js: El punt d'entrada de l'aplicació.
- src/App.vue: El component principal de l'aplicació.
- src/components/: Carpeta per als components Vue.
El Teu Primer Component Vue
Creació d'un Component
Un component Vue és un fitxer .vue
que encapsula HTML, CSS i JavaScript. Aquí tens un exemple d'un component senzill:
<!-- src/components/HelloWorld.vue --> <template> <div class="hello"> <h1>{{ message }}</h1> </div> </template> <script> export default { name: 'HelloWorld', data() { return { message: 'Hola, món!' }; } }; </script> <style scoped> .hello { font-family: Arial, sans-serif; color: #42b983; } </style>
Utilització del Component
Per utilitzar el component HelloWorld
en el teu projecte, primer has d'importar-lo i registrar-lo en el component App.vue
.
<!-- src/App.vue --> <template> <div id="app"> <HelloWorld /> </div> </template> <script> import HelloWorld from './components/HelloWorld.vue'; export default { name: 'App', components: { HelloWorld } }; </script> <style> #app { font-family: Arial, sans-serif; text-align: center; color: #2c3e50; } </style>
Directives de Vue.js
v-bind
La directiva v-bind
s'utilitza per enllaçar atributs HTML a dades de Vue.
<template> <img v-bind:src="imageSrc" alt="Example Image"> </template> <script> export default { data() { return { imageSrc: 'https://example.com/image.jpg' }; } }; </script>
v-model
La directiva v-model
s'utilitza per crear enllaços bidireccionals entre dades i elements de formulari.
<template> <input v-model="message" placeholder="Escriu un missatge"> <p>El teu missatge: {{ message }}</p> </template> <script> export default { data() { return { message: '' }; } }; </script>
v-if
i v-for
Les directives v-if
i v-for
s'utilitzen per a la renderització condicional i la iteració sobre llistes, respectivament.
<template> <div> <p v-if="isVisible">Aquest text és visible.</p> <ul> <li v-for="item in items" :key="item.id">{{ item.name }}</li> </ul> </div> </template> <script> export default { data() { return { isVisible: true, items: [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' } ] }; } }; </script>
Exercicis Pràctics
Exercici 1: Crear un Component de Salutació
Crea un component anomenat Greeting.vue
que mostri un missatge de salutació passat com a propietat (prop
).
Solució
<!-- src/components/Greeting.vue --> <template> <div> <h1>{{ greetingMessage }}</h1> </div> </template> <script> export default { name: 'Greeting', props: { greetingMessage: { type: String, required: true } } }; </script> <style scoped> h1 { color: #42b983; } </style>
Exercici 2: Crear una Llista de Tasques
Crea un component anomenat TodoList.vue
que mostri una llista de tasques i permeti afegir-ne de noves.
Solució
<!-- src/components/TodoList.vue --> <template> <div> <h2>Llista de Tasques</h2> <ul> <li v-for="task in tasks" :key="task.id">{{ task.name }}</li> </ul> <input v-model="newTask" placeholder="Nova tasca"> <button @click="addTask">Afegir Tasca</button> </div> </template> <script> export default { data() { return { tasks: [ { id: 1, name: 'Aprendre Vue.js' }, { id: 2, name: 'Construir una aplicació' } ], newTask: '' }; }, methods: { addTask() { if (this.newTask.trim() !== '') { this.tasks.push({ id: this.tasks.length + 1, name: this.newTask }); this.newTask = ''; } } } }; </script> <style scoped> h2 { color: #42b983; } </style>
Resum
En aquest tema, hem après els conceptes bàsics de Vue.js, incloent-hi la configuració del projecte, la creació de components i l'ús de directives. Hem vist com Vue facilita la creació d'interfícies d'usuari reactives i modulars. Els exercicis pràctics ens han ajudat a consolidar aquests coneixements. En el proper tema, explorarem com gestionar l'estat de l'aplicació amb Vuex.
JavaScript: De Principiant a Avançat
Mòdul 1: Introducció a JavaScript
- Què és JavaScript?
- Configuració del Teu Entorn de Desenvolupament
- El Teu Primer Programa en JavaScript
- Sintaxi i Conceptes Bàsics de JavaScript
- Variables i Tipus de Dades
- Operadors Bàsics
Mòdul 2: Estructures de Control
- Declaracions Condicionals
- Bucles: for, while, do-while
- Declaracions Switch
- Gestió d'Errors amb try-catch
Mòdul 3: Funcions
- Definició i Crida de Funcions
- Expressions de Funció i Funcions Fletxa
- Paràmetres i Valors de Retorn
- Àmbit i Tancaments
- Funcions d'Ordre Superior
Mòdul 4: Objectes i Arrays
- Introducció als Objectes
- Mètodes d'Objecte i Paraula Clau 'this'
- Arrays: Conceptes Bàsics i Mètodes
- Iteració sobre Arrays
- Desestructuració d'Arrays
Mòdul 5: Objectes i Funcions Avançades
- Prototips i Herència
- Classes i Programació Orientada a Objectes
- Mòduls i Importació/Exportació
- JavaScript Asíncron: Callbacks
- Promeses i Async/Await
Mòdul 6: El Model d'Objectes del Document (DOM)
- Introducció al DOM
- Selecció i Manipulació d'Elements del DOM
- Gestió d'Esdeveniments
- Creació i Eliminació d'Elements del DOM
- Gestió i Validació de Formularis
Mòdul 7: APIs del Navegador i Temes Avançats
- Emmagatzematge Local i de Sessió
- Fetch API i AJAX
- WebSockets
- Service Workers i Aplicacions Web Progressives (PWAs)
- Introducció a WebAssembly
Mòdul 8: Proves i Depuració
- Depuració de JavaScript
- Proves Unitàries amb Jest
- Proves d'Integració
- Proves de Cap a Cap amb Cypress
Mòdul 9: Rendiment i Optimització
- Optimització del Rendiment de JavaScript
- Gestió de Memòria
- Manipulació Eficient del DOM
- Càrrega Per Mandat i Divisió de Codi
Mòdul 10: Frameworks i Llibreries de JavaScript
- Introducció a React
- Gestió d'Estat amb Redux
- Conceptes Bàsics de Vue.js
- Conceptes Bàsics d'Angular
- Triar el Framework Adequat