¿Qué es un componente?

Componente: Estructura + apariencia + funcionalidad


En este punto, deberíamos tener un cierto background sobre los frameworks Javascript existentes más populares, que en su mayoría tienen una base importante: construcción de componentes.

Al igual que para organizar información cambiante usamos variables y para simplificar múltiples acciones utilizamos funciones, necesitamos estructuras que nos permitan organizar cómodamente varios aspectos del desarrollo web, de modo que sea cómodo, práctico y fácil trabajar con ellos. Es justo ahí, donde aparece el concepto de componente.

Componentes

Los componentes nos permiten organizar tres aspectos fundamentales en el Front-end (facilitando su reutilización en aplicaciones o componentes más grandes):

  • Estructura e información (Marcado o código HTML)
  • Aspecto visual (Apariencia o código CSS)
  • Funcionalidad (Lógica o código Javascript)

Cada uno de los frameworks Javascript existentes tienen su forma de definir y entender los componentes, con sus respectivas prioridades y enfoques. Sin embargo, la idea básica es crear un fichero (o varios) que definan estos tres conceptos y nos permitan utilizarlo como una etiqueta HTML para simplificar su uso.

Observa la siguiente estructura de archivos, donde en una carpeta components/ tenemos varios archivos, un HTML, un CSS y un Javascript:

+ components/
      BaseHeader.html
      BaseHeader.js
      BaseHeader.css

Cada uno de estos ficheros tiene uno de los aspectos fundamentales de los que hablamos antes. Esto facilita mucho al programador el enfocarse en una característica concreta de su aplicación, y una vez terminada, aislarse de ella y continuar con el resto. Así pues, una vez creado este componente, podremos reutilizarlo en secciones de nuestro sitio o aplicación web, haciendo referencia a su nombre mediante una etiqueta HTML:

<BaseHeader></BaseHeader>

La etiqueta <BaseHeader> no es una etiqueta HTML real, por lo que el framework interpreta que debe existir un componente BaseHeader (con su código HTML, CSS y Javascript), lo importa y lo cambia por el código del componente.

Esto nos permite ir creando componentes como capas de abstracción, de modo que simplificamos todo en componentes y nos resulta muchísimo más sencillo desarrollar, hacer cambios o mantener nuestro código.

Parámetros

Además, los componentes suelen permitir pasar parámetros a través de props (atributos HTML) que podrán obtenerse desde dentro del componente y reutilizarse, haciéndolos más flexibles y potentes para utilizar en múltiples casos:

<BaseHeader data="40"></BaseHeader>

Sin embargo, esto lo explicaremos más adelante, puesto que la implementación y forma de utilizar props suele variar de un framework a otro (incluso llamarse o ser cosas diferentes). De la misma forma, la comunicación entre distintos componentes, es algo fundamental que también suele variar y realizarse de formas variadas y muy diferentes dependiendo del framework.

En Vue la forma de trabajar con estos componentes son los ficheros SFC, o lo que es lo mismo, los ficheros .vue, que incluyen el HTML, CSS y Javascript y permiten crear componentes y reutilizarlos. En el siguiente artículo veremos como se utilizan.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev