Creación de Directivas Personalizadas en Vue.js
Clase 36 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
¿Qué son las directivas personalizadas en Vue.js?
Las directivas personalizadas son una poderosa herramienta que Vue.js ofrece para manipular el DOM y añadir funcionalidades específicas a nuestros componentes. Aunque Vue.js ya proporciona directivas predefinidas, en ciertos casos estas pueden quedarse cortas para satisfacer algunas necesidades específicas de un proyecto. Aquí es donde entran en juego las directivas personalizadas, permitiendo ampliar y escalar funcionalidades según los requisitos de la aplicación.
¿Cómo crear una directiva personalizada en Vue.js?
Para crear una directiva personalizada, primero debemos entender cómo funcionan sus etapas y qué atributos manejan. Las directivas tienen diferentes hooks, similares a los ciclos de vida de los componentes, como bind, update y otros.
El siguiente es un ejemplo de una directiva personalizada para aplicar un efecto de desenfocado o "blur" a elementos específicos cuando no se cumplen ciertas condiciones:
const blur = {
bind(el, binding) {
applyBlur(el, binding);
}
};
function applyBlur(el, binding) {
// Aplicamos el blur basándonos en el valor
el.style.filter = !binding.value ? 'blur(3px)' : 'none';
el.style.cursor = !binding.value ? 'not-allowed' : 'inherit';
el.querySelectorAll('button').forEach(button => {
if (!binding.value) {
button.setAttribute('disabled', true);
} else {
button.removeAttribute('disabled');
}
});
}
export default blur;
¿Cómo instalar y utilizar la directiva personalizada?
Instalación en Vue
Para hacer que la directiva esté disponible globalmente, es fundamental registrarla en el punto de entrada de la aplicación, generalmente en main.js:
import Vue from 'vue';
import BlurDirective from './directives/blur';
Vue.directive('blur', BlurDirective);
Uso en componentes
Una vez registrada, la directiva se puede aplicar a elementos dentro de un componente Vue:
<template>
<div v-blur="track.previewURL">
<!-- Elementos aquí -->
</div>
</template>
En este ejemplo, el efecto de desenfocado se aplica dependiendo de la disponibilidad de la previewURL. La directiva aplicará un blur a los elementos donde la URL de previsualización sea null o undefined.
Recomendaciones al usar directivas personalizadas
-
Instalación Local vs Global: Utiliza directivas globales si se usan en múltiples componentes; de lo contrario, es más eficiente registrarlas de manera local en el componente donde se necesiten.
-
Refactorización de Código: Mantén las funciones desacopladas para mayor claridad y reusabilidad. El aplicar cambios en un solo lugar puede evitar errores de implementación.
-
Validaciones Lógicas y de Interfaz: Además de efectos visuales, asegúrate de implementar lógica que evite interacciones indebidas sobre elementos que deberían estar inactivos.
El uso de directivas personalizadas puede mejorar notablemente la experiencia de usuario y la lógica de tu aplicación en Vue.js. Domínalas y verás cómo facilitan la creación de interfaces más intuitivas y eficientes. ¡Continúa explorando y dominando Vue.js para construir aplicaciones más robustas!