Los componentes de terceros, conocidos como "componentes letreros", son piezas de código que desarrolladores y empresas han creado para ser reutilizables en diversos proyectos. Estos componentes permiten extender la funcionalidad de aplicaciones web sin necesidad de reinventar la rueda. El concepto central es que, al seguir buenas prácticas, un componente pueda ser liberado y utilizado por otros desarrolladores en sus proyectos personales o laborales.
¿Dónde encontrar componentes de terceros?
Una de las páginas más destacadas para explorar estos componentes es WebComponents.org. Este recurso, originado por Google, es mantenido y enriquecido por la comunidad de desarrolladores y empresas, proporcionando un repositorio de componentes open source.
Elementos destacados de WebComponents.org
Polyfills: Pequeñas librerías que aseguran compatibilidad con navegadores antiguos.
Estado de API: Información sobre cómo los navegadores modernos han implementado estándares de Web Components.
Listados de componentes: Catalogación de componentes y colecciones de elementos generados por empresas como Microsoft, Salesforce, y Github.
¿Cómo se usan estos componentes?
Usar componentes de terceros es sencillo gracias a las instrucciones de instalación y uso que suelen acompañar a cada componente. Generalmente, se pueden integrar de dos maneras:
Vía CDN: Simplemente se incluye un script en el HTML para cargar el componente.
A través de NPM: Se descarga el paquete y se importa en el archivo JavaScript.
Ejemplo práctico con JavaScript
Veamos un ejemplo de cómo integrar un componente "Jelly Switch" utilizando CDN:
<!DOCTYPEhtml><htmllang="es"><head><metacharset="UTF-8"><title>Ejemplo de componente Jelly Switch</title></head><body><!-- Integración del script desde CDN --><scriptsrc="https://url-del-componente/jelly-switch.js"></script><!-- Uso del componente como etiqueta HTML --><jelly-switch></jelly-switch></body></html>
Este fragmento muestra la simplicidad con la que se puede incorporar un componente y empezar a utilizarlo como si fuera una etiqueta HTML nativa.
¿Cómo personalizar estos componentes?
La mayoría de los componentes de terceros permiten personalización a través de:
Propiedades: Ajustes que se pueden modificar directamente en el HTML.
Métodos y eventos: Funciones y eventos que los componentes exponen para aumentar interactividad.
Estilos CSS: Definiciones de estilo que se pueden ajustar mediante propiedades personalizadas (custom properties).
Integración de un nuevo componente en el proyecto
Al continuar explorando otros componentes, se pueden encontrar características únicas para diferentes propósitos. Aquí un ejemplo de cómo integrar otro componente utilizando un enfoque balanceado entre personalización y reutilización:
<!DOCTYPEhtml><htmllang="es"><head><metacharset="UTF-8"><title>Proyecto con múltiples componentes</title></head><body><scriptsrc="https://url-del-componente/diferente-switch.js"></script><!-- Componente personalizado --><diferente-switchcolor="azul"activado></diferente-switch></body></html>
Este ejemplo destaca cómo podemos ampliar la funcionalidad de nuestros proyectos de manera sencilla y sin necesidad de crear componentes desde cero, gracias a las contribuciones de una comunidad global de desarrolladores.
¡Involúcrate en la comunidad de componentes web!
Los Web Components brindan un poder increíble al desarrollo web, potenciando la reutilización de código y facilitando la personalización de proyectos. Te invito a investigar, explorar, e incluso colaborar en sitios como WebComponents.org, y a compartir tus experiencias y proyectos con la comunidad. La magia de los componentes web reside en su capacidad para transformar ideas en proyectos funcionales con solo unos cuantos pasos. ¿Listo para innovar?
Hmmm eso de "no lo vas a encontrar en ninguna otra librería o framework" no estaría tan de acuerdo... claro, no se encontrarán componentes que sean 100% compatibles entre librerías como lo es WebComponents, pero por supuesto que varios frameworks tienen sus opciones para componentes de terceros xD (de la misma librería obviamente jaja)
.
Aun así, está genial tener esta opción, de hecho algo curioso es que incluso podríamos usar estos componentes al trabajar con frameworks como React o Vue porque justamente son componentes nativos del navegador 🤔
Exacto, lo mejor de todo es que podes testear los WC con librerias. Habia pensado usarlo en algún proyecto con React
pienso que ser muy bueno en webcomponents es una skill muy valiosa justo por eso, poder incluir lo que quieras sea la tecnología que usen en la empresa de desarrollo, por otro lado.. no sé si se valora en el mundo laboral jajaja, yo sé que react si está muy valorado
Estos web componentes funcionarían en frameworks móviles cómo react native o native script?
🤔 Excelente pregunta, Lo dudo bastante, debido a que aquí interviene quién lo ejecuta, y también el entorno de que API's te ofrece. Por ejemplo, React Native convierte el código JavaScript a código Nativo para hacer que los dispositivos móviles lo puedan ejecutar. React Native exclusivamente te transforma el JavaScript y no todo el desarrollo web frontend (web API's, lenguaje de marcado, CSS), pero trae algunas API's del browser similares como ser fetch para las peticiones HTTP o una forma similar de estilizar con CSS, pero no del todo. Pero no creo que traiga las web API's que vimos en el curso como ser el Shadow DOM por que se ejecutara en móvil. Espero que te haya ayudado 😉
Hola, existe una stenciljs mantenida por el equipo de Ionic para implementar webcomponents en los proyectos que se genere con este framework para el desarrollo de aplicaciónes móviles.
Cuando vi lo rápido y sencillo que es usar un componente de terceros
Se puede hacer que WebComponents con JS Vanilla que hagan un llamado a "X" api y basado en su respuesta hagan autocomplete
Hola:
.
Eso de que Web Components es el github de los webComponents esta genial.
.
.
Saludos :)
Wow si es como magia. 😮❤
Hay en día es buena idea aprender Pollymer?
Polymer es de Google, es utilizado por YouTube. Aunque diría que no es la mejor idea para comenzar con Javascript ya que es escasamente demandado para conseguir trabajo.
Te puede servir, el conocimiento de cómo funciona seguro se complementa con otras librerías y frameworks pero no vas a encontrar trabajo en Polymer.
Saludos
Hola, gracias por responder mi pregunta; entiendo, entonces fue un framework que no tuvo éxito... que otro framework o libreria estaría bueno aprender? o se puedo hacer todo con vanilla js ?
Si un web component se carga junto a su js para funcionar, técnicamente también podría tener código para monitorear su uso vía, digamos, google analytics, ¿cierto? 🧐
Así es! Solo necesitas el código para enviar el trigger a google analitics