Creación de Componentes en Vue.js con Bulma para Platzi Music
Clase 24 de 53 • Curso Profesional de Vue.js 2
Contenido del curso
- 3

Herramientas esenciales para desarrollar con BioJS y NodeJS
06:13 - 4

Creación de una Aplicación Vue.js con CLI y Webpack Simple
12:50 - 5

Configuración y uso de Webpack en proyectos JavaScript
10:38 - 6

Configuración y uso de Babel para compatibilidad JavaScript
05:06 - 7

Configuración de eSlimt con EstándarJS y Webpack
15:34 - 8

Integración de SaaS y Bulma en Aplicaciones Vue.js
06:18 - 9

Configuración de Pag para optimizar el workflow de desarrollo HTML
04:23 - 10
Diseño de Mockups: Práctica y Colaboración en Comunidad
00:20 - 11
Creación de Vistas con Mockups y Vue.js
00:32
- 12

Expresiones en Vue: Manipulación Dinámica del DOM
03:49 - 13

Directivas de Vue: Uso y Funciones Principales
06:22 - 14

Data Binding y Directivas en Vue: bmodel y bevined
04:11 - 15

Propiedades Computadas en JavaScript: Creación y Uso Práctico
04:13 - 16

Uso de Watchers en Biomóvil para Gestión de Cambios de Propiedades
02:25 - 17

Manipulación de Eventos y Métodos en Aplicaciones Web
06:12 - 18

Creación de Interfaz con Vue.js y Framework CSS Bulma
19:03 - 19
Manipulación del DOM con Vue.js: Práctica y Ejercicios
03:00
- 23

Creación y Registro de Componentes en Vue.js
08:46 - 24

Creación de Componentes en Vue.js con Bulma para Platzi Music
09:50 - 25

Reactividad y Virtual DOM en Vue.js: Conceptos y Soluciones
06:14 - 26

Ciclo de Vida de Componentes en Vue.js: Hooks y Ejecución de Código
05:38 - 27

Comunicación entre Componentes en Vue.js: Props y Eventos
23:27 - 28

Comunicación entre Componentes en Vue: Eventos de Hijo a Padre
12:04 - 29

Uso de Slots para Inyección Dinámica de HTML en Componentes Vue
13:42 - 30

Comunicación entre Componentes Vue con Event Bus y Plugins
19:19
- 39

Gestión de Estados Centralizados con la Librería BuX
03:41 - 40

Integración de VueX y arquitectura Flux en Vue.js
17:32 - 41

Mutaciones en Vuex: Gestión y Actualización del Estado Reactivo
08:16 - 42

Uso de Getters en Vuex para Acceso Personalizado de Estado
07:35 - 43

Acciones asincrónicas en Vuex: cómo implementarlas y utilizarlas
07:55 - 44

Integración de VueX y Babel en PlatziMusic
26:37
¿Cómo estructurar eficazmente una aplicación en Vue?
Cuando trabajas en el desarrollo de aplicaciones, tener una estructura organizada puede marcar la diferencia entre un proyecto mantenible o uno caótico. Siguiendo las buenas prácticas, a continuación te guiaré a través de cómo estructurar tu proyecto utilizando componentes en Vue.js, especialmente para una aplicación musical, como Platzi Music.
¿Dónde crear los componentes?
La creación de componentes en una aplicación Vue comienza por establecer una estructura en el directorio que sea lógica y fácil de seguir:
- Carpeta 'components':
- Es recomendable alojar todos los componentes en una carpeta específica llamada
components. Aunque no es la única opción, esta práctica ayuda a mantener orden en el proyecto.
- Es recomendable alojar todos los componentes en una carpeta específica llamada
- Carpeta 'layout' dentro de 'components':
- Dentro de
components, crea una subcarpeta llamadalayoutpara separar componentes relacionados con la estructura principal de la aplicación, como el Header y Footer.
- Dentro de
¿Cómo crear y estilizar el componente Footer?
Al diseñar un Footer usando el framework CSS Bulma, puedes mejorar visualmente tu aplicación con estilos predefinidos.
<template>
<footer class="footer">
<div class="content has-text-centered">
<p>Code with ❤️ by [Tu Nombre]</p>
</div>
</footer>
</template>
- Bulma classes: Utiliza
footer,contentyhas-text-centeredpara darle estilo y centrar el contenido. - Edición básica: Elimina secciones de scripts y estilos no usados en el componente inicial.
¿Cómo incorporar el Footer en el proyecto?
Para integrar el nuevo componente Footer, sigue estos pasos:
- Importar el Componente en
App.vue:- Utiliza un prefijo como
pmpara diferenciar componentes del proyecto respecto a librerías de terceros. - Realiza el import de este modo:
- Utiliza un prefijo como
import PmFooter from './component/layout/footer.vue';
- Declarar el Componente Localmente:
- Añade el componente a la opción
componentsde la instancia de Vue para usarlo localmente.
- Añade el componente a la opción
components: {
PmFooter
}
-
Incluir el Componente en la Plantilla:
- Utiliza el estilo
kebab-casepara incluir el componente dentro del HTML:
- Utiliza el estilo
<pm-footer></pm-footer>
¿Cómo crear y estilizar el componente Header?
El componente Header usa también Bulma para aumentar la estética y funcionalidad:
<template>
<section class="hero is-success">
<div class="hero-head">
<nav class="nav">
<div class="container">
<div class="nav-left">
<a class="nav-item">
<strong>🎵 PlatziMusic</strong>
</a>
</div>
<div class="nav-right nav-menu"></div>
</div>
</nav>
</div>
<div class="hero-body">
<div class="container has-text-centered">
<h1 class="title">PlatziMusic</h1>
<h2 class="subtitle">Canciones que están buenísimas</h2>
</div>
</div>
</section>
</template>
- Clases de Bulma: Emplea
heroyis-successpara crear una cabecera atractiva y personalizable.
¿Cómo resolver problemas comunes al integrar componentes?
-
Error de "Root Element":
- Asegúrate de tener un único componente raíz en tu template. Si encuentras errores, verifica la correcta indentación y estructura para evitar duplicación de raíces.
-
Compilación de Vue con errores:
- Revisa que todos los componentes y niveles de anidación estén perfectamente estructurados. Vue puede arrojar errores si encuentra espacios o tabulaciones inconsistentes.
¿Cómo seguir mejorando con Vue y Bulma?
Es clave seguir explorando la documentación de Bulma y Vue para ampliar tus capacidades de desarrollo. La práctica constante te permitirá crear interfaces aún más atractivas y funcionales. No te detengas y sigue perfeccionando tus habilidades de programación; el mundo del desarrollo web está lleno de oportunidades para innovar y destacar.
¡Sigue creando y aprendiendo! Recuerda que cada línea de código te acerca más a tu objetivo de ser un desarrollador experto.