Saltar al contenido

El blog de Skatox Entradas

React vs Vue: ¿Cuál usar?

Este es un artículo que quería publicar hace un par de años. Quería escribir una comparación breve de React vs Vue para que cualquier persona con deseos de empezar con un nuevo proyecto o aprender front-end tenga una base de cual elegir. Pero siempre quedaba en borrador porque sentía que necesitaba mas experiencia con React (Vue lo uso diariamente en mi trabajo). Pero con la actualización de mis plugins de WordPress he logrado trabajar mas con React y poder hacer una comparación.

Comparación inicial entre React vs Vue

Algo que tienes que tener claro es que ambas tecnologías son librerias. No incluyen todos los componentes para hacer SPA. Pero si permiten crearlas y son la base para crear buenas interfaces dinámicas y ligeras.

Ambas tienen una funcionalidad similar pero con una sintaxis y forma de resolverlo diferente. Por ello, cuando quieres saber de React vs Vue debes enfocarte en cual se te hace mas fácil o te beneficia para tu próximo proyecto.

Ninguna es mejor que la otra, y todo se reduce a facilidad de conseguir programadores, documentación y cual se adapta a tu manera de pensar. Por eso lee los siguentes puntos que me parecen importante para que puedas elegir tu próxima librería de frontend.

Curva de aprendizaje y sintaxis

En mi opinión Vue es el mas fácil de aprender. La sintaxis es HTML con unos atributos especiales como v-if, v-if, v-model que permiten controlar el flujo de ejecución o generación del HTML, de resto es HTML estándar usando {{ }} (doble llaves) para mostrar las variables.

Actualmente posee dos formas de crear los componentes: usando Composition API y Options API. La diferencia entre ellas, es que la primera es parecida a la de React y esta enfocada en la facilidad de importar y reutilizar código. El otro, es la versión clasica donde creamos un objeto del componente con llamadas a los metodos, propiedades, datos, entre otras cosas.

También Vue tiene conceptos como variables computadas y asignación de modelos, que abstraen procesos que se harían manuales en otras librerias pero aqui se hacen de forma automática y podemos, por ejemplo, tener una variable que se compute automaticamente ante cambios, sin preocuparnos por desarrollar el proceso de actualización de la misma.

Aquí puedes ver un ejemplo de un componente sencillo que usa Composition API:

import { ref } from 'vue';

export default {
  setup() {
    const mostrarMensaje = ref(false);
    const nombre = 'María';

    const toggleMostrarMensaje = () => {
      mostrarMensaje.value = !mostrarMensaje.value;
    };

    return {
      mostrarMensaje,
      nombre,
      toggleMostrarMensaje
    };
  },
  render() {
    return (
      <div> 
        <h1>¡Bienvenido/a, {nombre}!</h1>
        <button onClick={toggleMostrarMensaje}>
          <span v-if="mostrarMensaje">Mostrar mensaje</span>
          <span v-else>Ocultar mensaje</span>
        </button>
        <p v-if="mostrarMensaje">Este es un ejemplo de sintaxis de renderización en Vue.</p>
      </div>
    );
  }
};

En cambio React usa JSX para renderizar los componentes. Es una sintaxis que mezcla XML con JS. Utiliza JS para controlar la lógica de renderizado y luego etiquetas HTML para definir los componentes y elementos de la página. Pero no es 100% igual, hay atributos como las clases que se llaman className, en vez de class y otros detalles que debes aprender.

Respecto a la parte de datos, utiliza algo llamado hooks que nos permite reutilizar el código mas facilmente. Aqui la data se maneja con estados. En mi opinión en React como no se abstraen tantas cosas, puedes tener mayor control de tu componente pero requiere que comprendas mejor el ciclo de video de ellos para obtener mejores resultados.

Aquí puedes ver un ejemplo de un componente sencillo que usa hooks:

import React, { useState } from 'react';

const Saludo = () => {
  const [mostrarMensaje, setMostrarMensaje] = useState(false);
  const nombre = 'María';

  const toggleMostrarMensaje = () => {
    setMostrarMensaje(!mostrarMensaje);
  };

  return (
      <div>
        <h1>¡Bienvenido/a, {nombre}!</h1>
        <button onClick={toggleMostrarMensaje}>
              { mostrarMensaje ? 'Ocultar mensaje' : 'Mostrar mensaje'}
        </button>
        { mostrarMensaje && <p>Este es un ejemplo de React JSX.</p> }
      </div>
  );
};

export default Saludo;

Aunque si observan ambos casos la sintaxis es muy similar, con saber buen HTML, no importa si es React vs Vue. Respecto a la sintaxis general

Documentación y comunidad

React debido a su popularidad posee una comunidad mas grande que provee mayor información y contenido. La documentación oficial es muy buena y enseña su uso sin importar que no tengas experiencia en la librería. Está dirigida a todo publico y me parece que nunca tuve dificultad para conseguir información para resolver problemas con React.

Vue también tiene una documentación muy buena, pero no es tan detallada. La comunidad es mas pequeña y en algunos casos debido a esto, no encontrarás mucha información o tutorial como los que existen en React.

En realidad ambos tienen documentación que te permiten aprender a usar estas tecnologías, solo que la de React tiene mas forma de tutorial y por el tamaño de su comunidad, te será mas fácil de encontrar solución a tus problemas.

Developer tools

Ambas librerías poseen herramientas para los navegadores a través de una extensión. En mi opinión las de Vue son mas cómodas, soporta gran variedad de tecnologías, permite ver mejora la información y son mas sencillas.

En cambio las de React, me pareció menos potente. A pesar de que puedes ver todos los componentes, no puedes editarlo o hacer operaciones avanzadas sobre los componentes. Y hay limitaciones como no poder usarlas dentro de un iframe que le quitan puntos.

Herramientas de desarrollo de React en Firefox

Pero ambas funcionan correctamente, permiten interactuar con los componentes y cumplen con el objetivo principal de ayudar al programador ver como se renderizan los componentes y ver las variables internas.

Mis recomendaciones

Si estás comenzando en el desarrollo front-end, considero que Vue es la opción ideal debido a su curva de aprendizaje suave y el uso de HTML simple para la creación de componentes visuales. No obstante, si tu objetivo es adquirir habilidades que te ayuden a conseguir trabajo, React es la elección más acertada debido a su mayor popularidad en el mercado laboral. Además, es posible encontrar una mayor cantidad de recursos e ejemplos para aprender, aunque es importante tener en cuenta que se requerirá un dominio previo de JavaScript y mayor esfuerzo inicial para dominarlo por completo.

¡Elige el que te parezca mas cómodo y se ajuste a tus necesidades! Comenta cual usas tú y por qué.

Deja un comentario

Mi opinión del documental de React.js de HoneyPot

React ha revolucionado el desarrollo web, ofreciendo a los desarrolladores una poderosa herramienta para crear interfaces de usuario dinámicas e interactivas. Gracias a Honeypot, una plataforma tecnológica reconocida, recientemente lanzó un excelente documental de React.js que profundiza cómo fue el nacimiento de esta tecnología

¿De qué se trata?

Puedo decir que me encantó este documental de React.js debido a que la historia es narrada por los participantes de la creación del proyecto. El documental abarca desde que fue una idea, el inicio de su desarrollo, las motivaciones tecnológicas para hacer React, qué cosas pasaron dentro de Facebook y como el proyecto fue adoptado por la compañía hasta ir poco a poco avanzando sobre la evolución de la librería a lo largo del tiempo, hasta llegar al futuro del mismo.

Las entrevistas son interesantes, variadas y con el contenido fácil de entender. No posee mucho contenido de alto grado tecnológico por lo que puede verlo todo tipo de público interesado en React.

Para quienes llevamos rato en el mundo del desarrollo web. Este documental de React.js nos traerá nostalgia de como funcionaban las cosas en el 2010-2012, a pesar que allí lo muestran como algo viejo y lejano, para uno es como si fuese ayer (creo que me estoy volviendo viejo al escribir estas cosas).

¿Cómo ver el documental de React.js?

El documental de React.js está disponible de forma gratuita en Youtube. Te recomiendo verlo con calma y tiempo porque es bueno, muy interesante y podría ser motivador, sobre todo si quieres llevar adelante tu proyecto de código abierto.

Así que mira el documental a continuación:

How A Small Team of Developers Created React at Facebook | React.js: The Documentary

Espero que te guste este grandioso documental de React.js y compártelo con tus amigos en las distintas redes sociales. Si deseas ver otro documental similar, te recomiendo ver el documental de la creación de Vue. Es igual de bueno y te encantará.

Finalmente, te invito a dejar tu comentario sobre el vídeo, si has trabajado con React.js o tu opinión de este framework que es mas actualizado actualmente para el desarrollo web.

Deja un comentario

JS Categories List 4.0

Luego de 7 años tuve la oportunidad de dedicarle tiempo a mi plugin JS Categories List y poder actualizarlo para que esté al día respecto a los estándares de WordPress y de la web en general.

Listado de categorías de forma dinámica
El plugin muestra un listado de categorías expandibles

Durante este tiempo WordPress añadió Gutenberg, un editor visual que ahora se incorpora en cada instalación y poco a poco va tomando el liderazgo de como crear el contenido. Por este motivo los widget/bloques han migrado a ser hechos con una aplicación en React y que llame a entradas del API del sitio.

Eliminación de jQuery de JS Categories List

En estos 7 años el principal cambio fue lo innecesario de depender de jQuery. Su popularidad se debía porque está incluida en cada instalación y anteriormente ayudaba a manipular el DOM fácilmente debido a las limitaciones de los navegadores.

Pero actualmente no es necesario usarla: los navegadores ya permiten hacer nativamente mucha de sus funcionalidad, la librería requiere cargar contenido JS innecesario y los bloques de Gutenberg se realizan con React quien ofrece mucho mas.

Creación del bloque de Gutenberg

Primero fue mejorar el código fuente, cuya tarea mas que todo fue aplicar estandarización de código PHP, organizar mejor el código, rescribir partes mal hechas

Luego fue la creación del bloque de Gutenberg, tomé como base el código fuente de mi otro plugin recientemente actualizado y lo modifiqué para funcionar con categorías en vez de archivos.

Los bloques de Gutenberg usan React, así que me tocó rescribir el plugin desde el PHP que genera HTML a componentes JSX. La lógica es similar pero en esta migración pude hacer mejoras que luego apliqué a la versión de PHP.

Para facilitar futuras mejoras y ver que el código funciona, agregué pruebas jest a los componentes y así asegurarme que todo funciona bien. En futuros cambios, ahora tendré como probar los cambios y garantizar el correcto funcionamiento,

Animaciones en JavaScript

Una de las principales funcionalidades que ofrecía jQuery es de animaciones sencillas con simplemente llamar una función. Esta funcionalidad no está disponible en el JavaScript puro porque esas características se fueron agregando a CSS.

En mi plugin de JS Archive List, logré implementar las animaciones usando clases CSS pero no funcionan bien en algunos casos reportados por usuarios, sobre todo, cuando hay altura dinámica.

Por ello, para este JS Categories List decidí crearlas desde 0 en vanilla JS para que funcionen bien en cualquier escenario. Descarté el uso de clases CSS por el problema mencionado, ademas que es mas fácil de probar de forma automatizada.

Experiencia al actualizar JS Categories List

Aprendí mucho al rescribir mi código antiguo. Noté como ha evolucionado mi forma de programar a lo largo de estos años, cómo la tecnología cambia pero las bases de WordPress se mantienen y la retrocompatibilidad se respeta. Con razón este CMS es el mas usado en el mundo.

Pude pulir mis conocimientos de React, de pruebas automatizadas con Jest y aplicar mejores patrones en el código de PHP. También el resultado me permitirá actualizar con mayor frecuencia este plugin y ofrecer mejoras.

Si usas WordPress te recomiendo descargar e instalar mi plugin.

Espero que te guste y lo uses en tu sitio.

Deja un comentario

Detección de contraataques de día cero con Inteligencia Artificial

Las nuevas amenazas informáticas, más peligrosas, requieren de competencias clave por parte de los especialistas en la seguridad de todo tipo de sistemas y entornos digitales

Un ataque de día cero implica grandes riesgos para las compañías, especialmente aquellas que manejan un volumen considerable de datos confidenciales. En este sentido, la Inteligencia Artificial, tan en boga en los últimos tiempos, puede ser de gran utilidad para la detección de estas vulnerabilidades. Así, se requiere de profesionales con competencias actualizadas en ciberseguridad, por lo que programas de alto nivel como la Maestría Oficial Seguridad Informática de TECH son diferenciales en esta área.

Los ataques más agresivos suponen un desafío importante en la seguridad informática, ya que implica la detección y mitigación de vulnerabilidades desconocidas y no parcheadas. No obstante, en este escenario, la IA puede desempeñar un papel vital al utilizar las técnicas de aprendizaje automático para su detección y mitigación. Así, la monitorización del tráfico de red y el análisis de los comportamientos de usuarios se convierte en un primer paso clave para descubrir un ataque de forma temprana y ofrecer una respuesta rápida.

En este contexto, cualquier desviación de los patrones normales del tráfico de red puede indicar que se está produciendo un ciberataque. Por esta razón, “educar” a la IA es esencial para que además en tiempo real tome los registros de eventos, de firewall y de autenticación. De esta manera, adopta medidas preventivas de forma automática y alerta a los equipos de seguridad para que tomen decisiones adicionales.

La experiencia en la Nube, mucho más segura

Los proveedores de infraestructura como servicio (IaaS), plataforma como servicio (PaaS) o software como servicio (SaaS), tienen la responsabilidad de garantizar la seguridad de la información y los recursos de sus clientes almacenados en la nube. Sin embargo, la IA abre un mundo de posibilidades hacia la mejora de la actualización continua.

El aprendizaje constante a partir de nuevos datos y la adaptación a las nuevas técnicas de ataque permite a los modelos de IA actualizarse. A todo ello se une el aprovechamiento de esta tecnología emergente en la colaboración entre los proveedores de servicios para compartir información sobre amenazas con otros proveedores y organizaciones.

Las implicaciones de estos avances se verán directamente en la mejora de la seguridad, pero también en la puesta al día necesaria de los profesionales informáticos en este ámbito. Esto conlleva un conocimiento sólido de las arquitecturas de seguridad, los mecanismos de autenticación y autorización, la criptografía y los estándares de seguridad. Además, se debe comprender las debilidades comunes en sistemas y aplicaciones.

Maestría Oficial en Seguridad Informática de TECH

Ante un entorno digital que está en transformación, la universidad digital TECH ha realizado una apuesta férrea por ofrecer titulaciones superiores que den respuesta tanto a las necesidades de los informáticos como a los del sector en el mundo de la ciberseguridad.

Por esta razón, la salvaguarda de los datos críticos y de los sistemas de una organización ponen el foco en esta Maestría Oficial en Seguridad Informática, que llevará al egresado a obtener un aprendizaje vital para desenvolverse con garantías ante las amenazas más sofisticadas. De esta forma, el informático desarrollará habilidades técnicas en áreas clave como la seguridad de redes, el análisis forense, el hackeo ético y el desarrollo seguro.

Y, además, su metodología de enseñanza es 100% online. Un sistema que le permite al alumnado acceder en cualquier momento del día y desde un dispositivo electrónico al contenido de alta calidad de esta opción académica.

TECH Universidad Tecnológica

TECH Universidad Tecnológica es una institución educativa de renombre a nivel global, reconocida por su excelencia académica. De acuerdo con el Financial Times, ha sido catalogada como una de las 200 compañías con mayor crecimiento en los últimos años. Y es que, gracias a su enfoque innovador en la educación online, esta institución académica ha ampliado su alcance en más de 150 países, atrayendo anualmente a más de 100.000 nuevos estudiantes.

La satisfacción de sus estudiantes con los conocimientos adquiridos es elevada. De hecho, según Trustpilot, una plataforma de valoraciones, TECH es considerada la universidad mejor calificada del mundo por sus propios alumnos, obteniendo una puntuación de 4,9 sobre 5 después de más de 1.000 comentarios.

Además, su atractiva metodología de aprendizaje Relearning hace que el egresado consiga afianzar de forma consistente los conceptos abordados y reduzca las largas horas de estudio y memorización tan frecuentes en otros modelos pedagógicos. Un sistema que fortalece la calidad de la enseñanza, primer objetivo de esta institución universitaria.

1 comentario