Creación de un Mini Framework Reactivo desde Cero
Clase 8 de 37 • Curso de Reactividad con Vue.js 3
Contenido del curso
- 6

Paradigma de Reactividad: Conceptos y Aplicaciones Prácticas
03:49 - 7

Creación de Framework Reactivo con Proxies en JavaScript
06:29 - 8

Creación de un Mini Framework Reactivo desde Cero
07:04 - 9

Programación Reactiva con Proxies en JavaScript
06:06 - 10

Uso de Reflect para Simplificar Proxies en JavaScript
09:29 - 11

Programación Reactiva: Efectos, Track y Trigger en JavaScript
03:53 - 12

Reactividad en JavaScript: Efectos, Trackers y Triggers
07:39
- 13
Templates de HTML en Vue.js: Mejores Prácticas Esenciales
00:21 - 14

Implementación de Vue.js en Proyecto eCommerce Reactivo
06:53 - 15

Expresiones
06:49 - 16

Atributos Dinámicos en Vue.js: Uso de Clases y Estilos Reactivos
06:08 - 17

Rendering Condicional en View.js: Uso de v-show y v-if
08:53 - 18

Renderizado de Listas en HTML con VueJS
08:14 - 19

Eventos y Dinamismo en Templates HTML con Vue JS
06:49
- 25

Creación de Componentes en Vue para Aplicaciones Modulares
06:56 - 26

Conexión de Datos entre Componentes en VueJS: Usando Props y Composition API
14:13 - 27
Creación de Componentes Personalizados en Aplicaciones Web
00:37 - 28

Creación de Eventos Personalizados en Vue para Comunicación entre Componentes
04:28 - 29

Eventos personalizados con Composition API en Vue.js
03:57 - 30

Observadores Personalizados con Watchers en Vue.js
08:53 - 31

Creación de Observadores Personalizados en Vue Composition API
08:19 - 32

Propiedades Computadas en Vue: Simplificación y Dinámica Reactiva
05:17 - 33

Propiedades Computadas con Composition API en Vue.js
06:20 - 34

Ciclos de Vida en Vue.js: Uso Práctico y Carga de Datos desde API
08:19 - 35

Ciclos de Vida en Composition API de Vue.js
06:03
¿Cómo crear nuestro propio mini framework?
La creación de un mini framework puede parecer una tarea abrumadora al principio, especialmente si eres nuevo en el mundo de la programación. Sin embargo, al romper el proceso en pasos manejables y comprender cómo funcionan los componentes clave, puedes construir tu propio framework sencillo inspirado en uno como Vue.js. Este mini framework se centrará particularmente en la reactividad y el manejo de datos a través de proxies y directivas personalizadas.
¿Cuál es la estructura de nuestro mini framework?
Para comenzar, debemos comprender la estructura básica que adoptará nuestro framework. Inspirándonos en Vue.js, mantendremos una sintaxis que incluye una función data que devuelve un objeto con toda la información necesaria para la aplicación. Nuestro objetivo es crear directivas personalizadas, como pText y pModel, para manejar cómo los datos se muestran en el HTML.
-
Crear un archivo de framework: El primer paso será crear un archivo
.jsdonde desarrollaremos todo nuestro código de framework. Por ejemplo, nombraremos este archivo comoplatzi.js. -
Declarar una variable global: Necesitamos una variable global que actúe como el núcleo de nuestra aplicación. Esta variable, llamada
Platzi, contendrá las reglas y sintaxis especiales de nuestro mini framework. -
Definir funciones y clases básicas:
- createApp: Función central que iniciará la aplicación y retornará una nueva instancia de una clase llamada
PlatziReactive. - Directivas: Las funciones
pTextypModelserán creadas para manejar cómo los datos se interactúan con el DOM.
- createApp: Función central que iniciará la aplicación y retornará una nueva instancia de una clase llamada
¿Cómo implementamos la reactividad?
La reactividad es un concepto clave que permite que los cambios en los datos se reflejen automáticamente en la interfaz de usuario (UI). En nuestro framework, implementaremos esta característica utilizando Reflect y Proxy.
Constructor y opciones
En el constructor de nuestra clase reactiva, pasaremos un conjunto de opciones que incluye los datos de la aplicación. A través de estas opciones, definiremos un origen para nuestros datos (similar a data en Vue.js).
class PlatziReactive {
constructor(options) {
this.origin = options.data();
}
// Otras funciones
}
¿Cómo montamos nuestra aplicación en el HTML?
Para montar nuestra aplicación en el HTML, implementaremos una función mount. Esta función seleccionará todos los elementos que contengan la directiva pText y aplicará la función correspondiente para actualizar el texto en el DOM.
mount() {
const elements = document.querySelectorAll('[p-text]');
elements.forEach(element => {
const propertyName = element.getAttribute('p-text');
this.updateText(element, this.origin, propertyName);
});
}
¿Cuál es el propósito de las directivas?
Las directivas son funciones que permiten enlazar y manipular datos directamente en HTML. Nuestra directiva pText se encargará de asignar el innerText del elemento a la propiedad especificada en los datos de la aplicación.
function pText(element, dataTarget, propertyName) {
element.innerText = dataTarget[propertyName];
}
¿Qué sigue en la evolución del framework?
Hasta este punto, hemos logrado crear una base sólida para una aplicación que puede manejar datos de manera reactiva con la ayuda de proxies. Sin embargo, este origen de datos aún no responde automáticamente a los cambios. En futuras implementaciones, profundizaremos en cómo convertir este origen a algo más dinámico utilizando proxies, creando una interacción más fluida y eficaz entre la lógica de la aplicación y su representación en la UI.
Armar tu propio mini framework no solo es un ejercicio práctico de programación, sino que también te ofrece una valiosa comprensión de los mecanismos internos que hacen funcionar a frameworks populares. A medida que adquieras más experiencia, podrás expandir esta base con funciones más complejas que se adapten a tus necesidades específicas. ¡No te detengas aquí y sigue construyendo e innovando!