Patrones para Aplicaciones Vue.js a Gran Escala

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

¿Cuál es la mejor manera de estructurar una aplicación Vue.js para que pueda escalar y satisfacer todas las necesidades de tus usuarios? Hay múltiples patrones establecidos en la comunidad Vue y en la comunidad de programación en general que se pueden adoptar para hacer que tus bases de código sean más predecibles, mantenibles y extensibles.

This talk has been presented at Vue.js London Live 2021, check out the latest edition of this JavaScript Conference.

FAQ

Daniel Kelly es un profesor en Vue School, donde ha estado trabajando durante aproximadamente seis meses. Antes de unirse a Vue School, era un desarrollador full stack y ha trabajado con tecnologías como PHP en Laravel y JavaScript en Vue.

Una base de código predecible facilita la localización de características o errores específicos y la comprensión de qué herramientas y datos están disponibles. Esto ayuda a reducir la frustración, eliminar dolores de cabeza y ahorrar tiempo al desarrollar y mantener aplicaciones.

La previsibilidad en un proyecto de Vue.js se logra siguiendo 'standards' o estándares que simplifican y estandarizan el desarrollo. Esto incluye adherirse a la Guía de Estilo de Vue.js, utilizar el andamiaje de Vue.cli, y seguir las prácticas comunes en la comunidad de Vue.

Daniel Kelly recomienda la Guía de Estilo de Vue.js, el andamiaje generado por Vue.cli, las bibliotecas oficiales de Vue.js y los marcos de componentes populares como Vuetify, Quasar o Bootstrap Vue.

Daniel sugiere usar componentes de archivo único, nombrarlos en Pascal Case, prefijar componentes base con 'app' o 'base', y utilizar nombres de varias palabras para evitar conflictos con elementos HTML. También recomienda prefijar componentes de instancia única con 'the' para claridad.

Envolver bibliotecas de terceros en componentes personalizados facilita la gestión de cambios en las dependencias y expande la funcionalidad de las bibliotecas. Permite mantener una interfaz consistente aunque cambie la biblioteca subyacente, reduciendo el impacto en el resto del código.

Daniel Kelly
Daniel Kelly
25 min
21 Oct, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Las normas son cruciales para lograr previsibilidad y mantenibilidad en una base de código. La comunidad Vue.js proporciona varias fuentes de normas, incluyendo la Guía de Estilo Vue.js y las bibliotecas oficiales. Las normas personales y de equipo pueden complementar las de toda la comunidad. Las estructuras de componentes alternativas, como una estructura casi plana, pueden funcionar bien para aplicaciones grandes. Adoptar una convención de nomenclatura de rutas estandarizada puede hacer que las rutas sean más predecibles. Consejos varios incluyen envolver bibliotecas de terceros, crear SDKs para APIs, y registrar automáticamente componentes a nivel global. Las pruebas exhaustivas son importantes, y Vue School ofrece varios servicios y cursos para convertirse en un experto en Vue.js.

1. Introducción

Short description:

Hola a todos. Soy Daniel Kelly, un profesor de Vue School. He trabajado como desarrollador full stack con tecnologías como PHP en Laravel y JavaScript en Vue. Estoy emocionado de compartir algunos consejos y trucos con ustedes hoy.

Hola a todos. Estoy realmente emocionado de estar con ustedes hoy y tener la oportunidad de compartir algunas cosas, algunos tips, y trucos que he aprendido durante mi tiempo como desarrollador. Mi nombre es Daniel Kelly, y soy un profesor en Vue School. En realidad, solo he estado en Vue School durante unos seis meses, pero desde que me uní al equipo, realmente he disfrutado de la oportunidad de poder contribuir a la comunidad de Vue que realmente me ha dado tanto a lo largo de mi carrera de desarrollo. Antes de unirme a Vue School, era un desarrollador full stack, y he trabajado con una serie de tecnologías a lo largo de los años, como PHP en Laravel y, por supuesto, JavaScript en Vue. Cuando no estoy programando, paso mi tiempo como esposo y padre, y para ser honesto, no sé con qué lucho más, con mis hijos o con mi código. Cuando tienes tres, hay mucho de eso que sucede.

2. Logrando la Previsibilidad con Estándares

Short description:

Cuando se trata de construir un proyecto escalable, la previsibilidad es clave. Quieres poder localizar y abordar fácilmente las solicitudes de características o informes de errores en el código. La previsibilidad también significa saber qué herramientas y datos están disponibles en cada ubicación. Tener una base de código predecible es importante porque elimina la confusión y ahorra tiempo. Si bien una base de código no puede ser completamente predecible o entendida en su totalidad, la previsibilidad se trata de poder enfocarse en una pieza a la vez. Los estándares son la clave para lograr la previsibilidad en una base de código.

De todos modos, eso es suficiente sobre mí. Vamos a lo que realmente vinieron a escuchar hoy. ¿Y eso es cuál es la mejor manera de estructurar una aplicación de Vue.js para que sea mantenible y escalable a medida que crece?

Bueno, si puedo ser tan audaz, voy a tratar de responder a esa pregunta frecuentemente formulada con una sola palabra. Y aquí está, previsibilidad. Cuando se trata de construir un proyecto escalable, quieres que todo sea lo más predecible posible. ¿Pero qué significa eso a nivel práctico? Bueno, para mí se trata de la capacidad de pasar de una solicitud de característica o un informe de error a la ubicación exacta o quizás a varias ubicaciones en el code donde se puede abordar dicha característica o informe de error. No solo eso, creo que es la capacidad de saber qué herramientas y qué data tienes acceso en esa ubicación en el code.

Ahora, ¿por qué es esto importante? ¿Por qué es importante que tengamos bases de code predecibles? Bueno, si eres algo como yo, definitivamente te has sentido así antes. Has abierto la base de code en tu editor, y te han asignado una tarea y piensas que no sé por dónde empezar. Estoy perdido. No tengo idea de lo que estoy haciendo y sí, creo que todos hemos estado allí. Tal vez es porque somos nuevos en el equipo. Tal vez es porque somos nuevos en un proyecto y tal vez eso es un poco más comprensible. Pero tal vez es incluso un proyecto en el que hemos estado trabajando durante bastante tiempo, y simplemente no sabemos por dónde empezar. Bueno, ese es el objetivo de una base de code predecible es aliviar esta experiencia tanto como sea humanamente posible y con ello se va a deshacer de muchos dolores de cabeza y va a eliminar mucha frustración y te devolverá mucho de tu tiempo.

Ahora rápido. Vamos a ver lo que no estoy diciendo. En primer lugar, no estoy diciendo que tu base de code pueda ser 100% predecible. No estoy diciendo que nunca tendrás que hacer ninguna excavación para encontrar lo que estás buscando, ¿verdad? Eso simplemente no es posible. También no estoy diciendo que tu base de code pueda ser entendida al 100% como un todo. De hecho, la mayoría de las aplicaciones o al menos muchas aplicaciones muy grandes son simplemente demasiado complejas para poder tener todo en tu cabeza a la vez. Y por lo tanto, una base de code predecible no es necesariamente sobre poder entender todo a la vez. Para mí, la previsibilidad es realmente más sobre poder predecir dónde encaja una cierta pieza en esa base de code y realmente ser capaz de enfocarse solo en esa pieza a la vez sin tener que pensar en el resto. De hecho, creo que eso es una medida de una muy buena base de code. Bueno. Entonces, ¿cómo logramos la previsibilidad? Esa es la pregunta. ¿No es así? Bueno, una vez más, si puedo ser tan audaz, voy a tratar de responderla con una sola palabra. Esa palabra es standards. ¿Por qué standards? Bueno, porque realmente, así es como haces cualquier cosa predecible, ¿verdad? Puedo saber con casi un 100% de certeza que cuando vaya a cambiar las sábanas de la cama de mi hijo esta noche, las sábanas que saco del armario encajarán porque hay un sistema de tamaño estándar y simplemente se hizo de esa manera con un estándar. Ahora puede que saque las sábanas del tamaño equivocado del armario para mi cama en lugar de la suya, pero hemos estado allí.

3. Estándares de la Comunidad Vue.js

Short description:

Los estándares son el mayor predictor de una base de código mantenible. Hay cuatro fuentes de estándares en la comunidad Vue.js: la Guía de Estilo Vue.js, el andamiaje generado por Vue.cli, las bibliotecas oficiales de Vue.js y los marcos de componentes populares. Estas fuentes proporcionan estándares compartidos, facilitando la interacción con otros y la incorporación de nuevos miembros del equipo. Considera usar soluciones existentes antes de crear las tuyas propias, ya que vienen con pruebas incorporadas, excelente documentación y estándares establecidos.

Pero eso depende de mí. Eso no es culpa de los standards. Bien. Una vez más, no estoy diciendo que los standards sean una bala de plata. No es algo que vaya a resolver todos tus problemas de desarrollo. Pero creo que es el mayor predictor de una base de code mantenible si sigues los standards.

Entonces, eso plantea la pregunta, ¿qué tipo de standards existen para la community de Vue en general? ¿Cuáles son esos standards que todos podemos compartir y conocer, ya sea que estemos trabajando solos, en un equipo pequeño o en cualquier lugar del mundo? Y en mi opinión, hay cuatro fuentes de standards en la community de Vue.js. La primera es la Guía de Estilo de Vue.js. Probablemente la más obvia, porque su propósito literal es proporcionar un conjunto de standards para todos nosotros. La siguiente es el andamiaje generado por Vue.cli. No voy a entrar en Vue.cli o Vite aquí porque realmente prefiero Vite, pero realmente estoy hablando de esa estructura de archivos a la que todos estamos acostumbrados a ver. Otra fuente son las bibliotecas oficiales de Vue.js. Y esas son todas las bibliotecas listadas en el sitio web oficial de la documentation de Vue bajo la sección de proyectos oficiales. Y por último, y sí, admito que quizás un poco más libremente, tenemos los marcos de componentes más populares. Cosas como Vue. Defy o Quasar o Bootstrap Vue. Bien. Entonces, primero que nada, profundicemos un poco más en esos dos últimos elementos. Es decir, las bibliotecas oficiales y de componentes. Admito que su propósito principal es la funcionalidad. Sin embargo, como efecto secundario de ser tan ampliamente utilizados, también proporcionan standards compartidos. ¿Qué quiero decir con eso? Bueno, toma VueRouter, por ejemplo. Si terminas usando VueRouter como tu solución de enrutamiento para tu proyecto de Vue.js, no estás optando solo por un paquete, realmente estás optando por una community de personas que usan exactamente el mismo paquete. Y por lo tanto, puedes interactuar con otros en todo el mundo que conocen y están familiarizados con ese paquete. Eso es parte de lo que estas bibliotecas oficiales y estas bibliotecas de componentes nos proporcionan es este conjunto de standards a seguir. VueX lo entiende al decir en su sitio web oficial que es un patrón de state management más una biblioteca. Entiende la importancia de tener un patrón, un estándar a seguir. Ahora, ¿cuál es mi punto al decir esto? Algunas de estas cosas pueden parecer un poco obvias, pero mi punto es que realmente deberías considerar usar la solución existente antes de intentar crear la tuya propia o ir con alguna otra solución. Si ya existe una solución que satisface tus necesidades, intenta usarla a menos que tengas una muy buena razón para no hacerlo, porque no solo esa solución viene con pruebas incorporadas, no solo viene con una excelente documentation, sino que también viene con standards, standards que personas más allá de tu equipo conocen, y eso hará que la incorporación de nuevas personas sea mucho más fácil.

4. Estándares de Componentes en Vue.js

Short description:

Esto también se aplica a todas las bibliotecas de componentes. La estructura proporcionada por el Vue CLI es un estándar familiar con el que no deberíamos jugar, a menos que haya una buena razón. La Guía de Estilo de Vue.js proporciona estándares de componentes que hacen que el código sea más predecible. Algunos de estos estándares incluyen el uso de componentes de archivo único dedicados, nombrar componentes en Pascal case y prefijar los componentes base con app o base. También sugiere usar nombres de varias palabras para evitar conflictos con los elementos HTML, prefijar los componentes de instancia única con la palabra the y prefijar los componentes hijo estrechamente acoplados con el nombre del componente al que están acoplados. Por último, los componentes deben comenzar con el término más general y terminar con el más específico para facilitar el agrupamiento en los IDE.

Creo que esto se aplica a todas las bibliotecas de componentes también, solo que a un nivel un poco más suelto, pero la misma idea.

Bien, el siguiente estándar es la estructura proporcionada por el CLI de Vue, y realmente no tengo mucho que decir sobre esto, aparte de que es algo con lo que todos estamos familiarizados, así que no juguemos con ello, a menos que tengamos una muy buena razón para hacerlo.

Bien, si profundizamos ahora en el directorio de componentes y si miramos en la Guía de Estilo de Vue.js, verás que tenemos algunos estándares de componentes descritos para nosotros en la Guía de Estilo que realmente ayudarán mucho a hacer nuestro código más predecible.

Así que vamos a echar un vistazo a algunos de esos estándares hoy. El primero mencionado en la Guía de Estilo es que realmente deberíamos estar usando componentes de archivo único dedicados. Realmente no hay una buena razón, a menos que no estés usando una herramienta de construcción, para no poner todos tus componentes en un archivo de Vue dedicado.

Además, tus componentes de archivo único deben ser nombrados en Pascal case. Tus componentes base deben estar prefijados con app o base. Y esto simplemente los agrupa todos juntos en la estructura de archivos y proporciona ese estándar donde otras personas pueden mirar la app... o perdón, mirar el componente y decir, oh, eso es como un componente reutilizable en toda la app. Sé exactamente cuándo y dónde puedo usar eso. Y en realidad prefiero usar app todo el tiempo porque comienza con una A y normalmente va a agrupar todos esos y poner todos esos en la parte superior de mi directorio de componentes.

Bien, otra cosa en la guía de estilo de Vue.js es usar nombres de varias palabras para tus componentes. Y esto es realmente más que solo una cosa estilística. Esto es para evitar conflictos con futuros o existentes elementos HTML ya que por definición siempre son una sola palabra.

Otro estándar en la guía de estilo de Vue.js es prefijar todos tus componentes de instancia única con la palabra the. Es decir, componentes que solo se usarán una vez por página. Cosas como el encabezado o la barra lateral. Una vez más, esa previsibilidad hace que un nuevo desarrollador o alguien completamente nuevo en el proyecto sepa instantáneamente de qué tratan estos componentes.

También sugiere prefijar los componentes hijo estrechamente acoplados con el nombre del componente al que están acoplados. Por ejemplo, podrías tener una lista de tareas y luego elementos dentro de esa lista de tareas. Y entonces tendrías un componente de lista de tareas y un componente de elemento de lista de tareas. Del mismo modo, podrías tener un formulario de trabajo y luego un campo de mapa de ubicación especial en ese formulario. Y por lo tanto ese componente se llamaría campo de mapa de ubicación de formulario de trabajo.

Bien, a veces, sí, esto puede ser un poco largo, pero realmente los agrupa juntos y ayuda a las personas a saber que están acoplados y no pueden ser usados uno sin el otro. Y por último, comienza con el término más general dentro de tu componente y termina con el más específico. Esto simplemente agrupa las cosas una vez más. Y cuando los buscas en tus IDEs, en la búsqueda rápida o lo que sea, puedes ver todo agrupado en una sola búsqueda. Entonces, por ejemplo, tienes el widget de búsqueda, tienes el input del widget de búsqueda, y por último la lista de resultados del widget de búsqueda. Bien, la Guía de Estilo de Vue.js en realidad tiene muchas otras cosas realmente valiosas en ella.

5. Estándares Personales y de Equipo

Short description:

Te animo a que consultes la Guía de Estilo de Vue.js y utilices el plugin oficial de ESLint para obtener recomendaciones en tiempo real. Además, recomiendo establecer estándares personales o de equipo para complementar los de la comunidad. Una de estas recomendaciones es un directorio de componentes plano, que ofrece beneficios como una rápida navegación y una mejor capacidad de búsqueda. Aunque personalmente no he utilizado esta estructura, creo que puede mejorar enormemente el proceso de desarrollo.

Pero no voy a regurgitar todo eso aquí hoy. Pero realmente te animo a que lo revises. En realidad, pasó bastante tiempo desde que comencé a desarrollar con Vue antes de que me diera cuenta de que existía la Guía de Estilo de Vue.js. Y si la hubiera estado utilizando antes en mi carrera, antes en mi desarrollo con Vue, probablemente me habría ahorrado algunos dolores de cabeza y problemas al comunicarme y programar con mis compañeros de equipo sobre Vue.

Ahora, si quieres hacer que las recomendaciones de la guía de estilo sean un poco más accesibles para ti y un poco más en tiempo real, puedes usar el plugin oficial de ESLint que, por supuesto, combinado con los poderes de tu editor, marcará los errores para ti justo ahí en línea, mientras estás editando tus archivos. Y esto no solo incluirá errores de JavaScript en tus componentes de archivo único, sino que también te advertirá de algunas infracciones contra la Guía de Estilo de Vue.js. Así que realmente te animo a que lo revises y lo uses en tus proyectos para que puedas adherirte a estos estándares lo mejor que puedas, los mencionados en la guía de estilo.

Muy bien. Eso es todo para los estándares de la comunidad que tenemos disponibles. Pero creo que realmente estaría remiso si no recomendara algunos estándares personales o de equipo que he encontrado útiles. Creo que estos son absolutamente necesarios porque los estándares de la comunidad simplemente no son lo suficientemente completos para cubrir todas nuestras necesidades. Ahora, no estoy diciendo que sea culpa de la comunidad. Hay muchos estándares por ahí. Simplemente tenemos muchas aplicaciones diferentes, muchas formas diferentes de hacer las cosas. Y así es como va el mundo del desarrollo. Pero realmente creo que es esencial que para nuestro propio desarrollo personal o para nuestros equipos, elaboremos algunos estándares para nosotros mismos. Realmente va a hacer que tu proceso de desarrollo sea mucho más fluido.

Muy bien. Así que mi primera recomendación para tu estándar personal o de equipo es un directorio de componentes plano. Ahora, sé que algunos de ustedes pueden mirar esto y pensar que parece un poco loco, pero escúchame y no te desconectes todavía. Creo que hay una serie de beneficios diferentes que el directorio de componentes plano proporciona. El primero es que puedes navegar rápidamente desde las herramientas de desarrollo a la revisión del archivo del componente. Solo miras el nombre del componente en las herramientas de desarrollo y luego puedes ir directamente a él en tu estructura de archivos sin tener que navegar a través de diferentes directorios y buscar en diferentes directorios y todo eso. Simplemente están todos en ese directorio de componentes plano listados alfabéticamente para ti. También fomenta la navegación con la función de búsqueda rápida de tu IDE, porque navegar a través de esa larga lista se vuelve un poco más difícil. Realmente te hace y te obliga a intentar hacer la búsqueda. Y si estás nombrando tus componentes correctamente, como sugiere la guía de estilo, todo tu agrupamiento que normalmente se haría con carpetas de todos modos saldrá de la caja para ti. Y hay algunos otros beneficios que simplemente no tengo tiempo para repasar hoy, pero voy a compartir estas diapositivas en Twitter después de la charla. Así que si quieres mirar eso más, puedes hacerlo en ese momento.

Ahora, en realidad tengo una pequeña confesión que hacer, y es que nunca he usado la estructura de componentes plana en mis propios proyectos y en los proyectos que he realizado en el trabajo.

6. Alternativa: Estructura de Componentes Casi Plana

Short description:

He escuchado de algunas personas inteligentes que una estructura de componentes casi plana puede funcionar bien para aplicaciones grandes. Aunque no la he utilizado personalmente, te mostraré una alternativa que sí he utilizado. Es un compromiso entre la estructura de componentes plana y el diseño impulsado por el dominio, donde los componentes específicos de la página se almacenan en un directorio parcial. Este enfoque me ha resultado bastante bien.

Pero quería compartirlo con ustedes porque he escuchado de algunas personas realmente inteligentes que esto realmente puede funcionar bien, incluso para aplicaciones de un tamaño muy grande. Pero como no es algo que haya utilizado personalmente yo mismo, no puedo recomendarlo al 100 por ciento y quiero mostrar la alternativa que sí he utilizado. Pero es muy similar y hoy lo llamaré una estructura de componentes casi plana. Y la razón por la que lo llamo una estructura de componentes casi plana es porque nuestro directorio de componentes en realidad sigue siendo plano. Mi única diferencia es que para los componentes que son específicos de la página, me gusta almacenarlos en un directorio parcial con mis componentes de página. Entonces, por ejemplo, como puedes ver en la captura de pantalla, hay un directorio de vistas y tengo una serie de diferentes páginas que tienen que ver con el recurso del cliente de mi aplicación. Y dentro de esa carpeta de clientes están mis páginas y un directorio llamado Partials. Ahora, lo que vive en partials aquí son componentes que van solo en esas páginas de clientes. No son páginas completas dentro de ellas mismas, pero son solo piezas de esas páginas de clientes. Y encuentro que esto funciona realmente bien como una especie de compromiso entre la estructura de componentes plana y el diseño impulsado por el dominio. Es una especie de término medio. Me ha resultado bastante bien.

7. Convención de Nomenclatura de Rutas Estandarizada

Short description:

El próximo estándar que recomiendo es una convención de nomenclatura de rutas estandarizada. Funciona muy bien para Laravel y puede ser adoptada para la comunidad de Vue. La mayoría de las aplicaciones CRUD tienen cuatro necesidades típicas para un recurso: listado, creación, visualización y edición. Al seguir esta convención de nomenclatura, tus rutas se vuelven predecibles.

Muy bien, el próximo el próximo estándar que quiero recomendar que utilices en tus proyectos personales o de tu equipo es una convención de nomenclatura de rutas estandarizada. De hecho, vimos eso en acción en la captura de pantalla que mostramos hace un minuto. Aquí vemos clientes crear, clientes editar, clientes indexar y clientes mostrar. Si estás familiarizado con Laravel, esto probablemente te resulte muy familiar porque es un estándar al que se adhieren. Y funciona muy bien para Laravel, así que ¿por qué no adoptarlo para la Vue community?

La mayoría de las aplicaciones, la mayoría de las aplicaciones CRUD tienen cuatro necesidades típicas para un recurso en particular. Por ejemplo, tendrías que tener una forma de listar todos ellos, una forma de crear uno de ellos, una forma de mostrar uno solo de ellos, y una forma de editar un solo uno de ellos. Y por supuesto, una forma de eliminarlos también. Pero eso normalmente no necesita una página completa. Y así verías cómo se vería un recurso llamado usuarios con esta convención de nomenclatura de rutas estandarizada para una aplicación CRUD. Y no voy a pasar por todos ellos porque simplemente no tenemos el tiempo para hacerlo, pero esto funciona muy bien y hace que tus rutas sean muy predecibles.

8. Consejos Varios para Aplicaciones a Gran Escala

Short description:

Envuelve tus bibliotecas de terceros en componentes para cambiar fácilmente las dependencias y ampliar la funcionalidad. Extiende tu clase HTTP con caché o crea componentes envolventes para iconos de terceros. Envuelve las APIs rest en un SDK simple para eliminar errores de tipeo y proporcionar autocompletado. Registra automáticamente los componentos base a nivel global para simplificar la importación y el registro.

Muy bien, quiero ir un poco más allá de la previsibilidad y hablar sobre algunos otros consejos tips para aplicaciones a gran scale.

Mi primer consejo aquí es envolver tus bibliotecas de terceros en componentes. ¿Qué quiero decir con eso? Bueno, echemos un vistazo a este ejemplo. Digamos que estás usando Axios como tu cliente HTTP, y lo que te recomendaría es que realmente envuelvas Axios en una clase quizás con un nombre más genérico como HTTP, y luego simplemente uses Axios bajo el capó para hacer el trabajo pesado. Ahora, ¿por qué diablos haría esto, a menos que me paguen por línea? ¿Verdad? Parece que solo crea un poco de fricción adicional, un poco de trabajo extra. Pero hay algunos beneficios. El primero es que si por alguna razón alguna vez tienes que cambiar Axios por alguna otra solución HTTP, solo tienes que hacerlo en un solo lugar. Por ejemplo, en este caso, he cambiado Axios por Fetch. No tuve que recorrer toda mi base de código y cambiar las cosas, sino que solo tuve que apuntar a esa clase HTTP y el resto de la base de código continúa usando la clase HTTP como de costumbre. De hecho, las personas que están usando esa clase HTTP en el resto de la base de código, realmente no tienen que saber que la dependencia subyacente cambió. Simplemente siguen usando la misma interfaz para esa clase que han estado acostumbrados a usar. Otro beneficio para mí es que realmente expone formas de expandir la funcionalidad de tus clases de utilidad. Por ejemplo, aquí he incorporado una forma de alertar a un usuario o realizar algún tipo de acción cuando una solicitud HTTP falla en Fetch. Ahora, obviamente, alertar quizás no sea la mejor solución, no sea lo más amigable para el usuario, pero entiendes la idea. Ahora, por supuesto, con Axios, también hay ciertos ganchos en los que puedes engancharte para hacer cosas similares, pero para mí simplemente no son tan obvios. Y para algunas bibliotecas de terceros, esos ganchos simplemente pueden no existir. Y así, si los envuelves, la capacidad de extender y aumentar tus bibliotecas de terceros realmente se vuelve mucho más clara y un camino limpio de cómo hacerlo. Muy bien. Y este es solo un ejemplo más de cómo podrías hacer lo mismo extendiendo tu clase HTTP con algo de caché. Muy bien. Así que no solo puedes hacer eso con bibliotecas, aunque, cosas que son más funcionales por naturaleza, sino que puedes hacerlo incluso con componentes de terceros. Entonces, por ejemplo, podría crear un componente envolvente llamado icono de aplicación, y lo hemos llamado icono de aplicación porque de standards. Correcto. Y así, lo que hace este icono de aplicación es proporcionar una interfaz singular para trabajar con varios tipos de iconos de terceros, en este caso, Phone Awesome y Material Design icons.

Mi próximo paso para ustedes es interactuar con rest APIs, con SDKs, tal vez tu servicio ya proporciona un SDK, y si es así, entonces genial, úsalo. Pero si todo lo que proporciona es un punto final de API para golpear, te animo a que envuelvas esa API en un simple SDK propio. Y eso podría ser un SDK que termines usando solo para ese proyecto, o algo que incluso podrías compartir entre varios proyectos. Pero realmente te ayuda a eliminar la oportunidad de errores de tipeo y te da algo un poco más inteligente con lo que trabajar, algo como una clase con un método en ella que tu IDE puede autocompletar para ti. Además, si la API rest cambia en algún momento en el futuro, solo tienes que actualizar tu SDK y el resto de tu base de code puede permanecer intacta.

9. Registro Automático de Componentes y Pruebas

Short description:

Registra automáticamente los componentes base a nivel global y no olvides realizar pruebas exhaustivas. La biblioteca recomendada para probar los componentes de Vue.js es Vue.testing library. En conclusión, Vue School ofrece varios servicios empresariales, incluyendo desarrollo, consultoría y formación de equipos. También proporcionan la masterclass de Vue.js 3 y otros cursos para ayudarte a convertirte en un experto con Vue.

También, registra automáticamente los componentes base, necesitan estar disponibles a nivel global de todos modos, por lo que podrías seguir adelante y registrarlos automáticamente con un simple pedazo de code como este, y ni siquiera tienes que pensar en importarlos y registrarlos tú mismo.

Y finalmente, solo haz tus testing. Sé que hay muchas veces que simplemente no nos apetece hacerlo y no es lo más emocionante del mundo, pero para tus aplicaciones a gran scale, te prometo que es mejor hacer el trabajo por adelantado que tener que lidiar con los bugs y los problemas de regresión en el futuro. A nivel personal, sí, a veces las testing pueden ser frustrantes, pero nunca, nunca he lamentado hacer o crear una prueba. Ha habido muchas veces en las que he lamentado no crear una prueba.

Y también, solo para que lo sepan, la biblioteca recomendada ahora para testing tus componentes de Vue.js es la biblioteca Vue.testing, no Vue.testutils. Vue.testing library está construida sobre Vue.testutils, pero te da un poco más de abstracción para hacer la escritura de tu prueba mucho más fácil.

Muy bien, eso concluye mi charla sobre patterns para aplicaciones a gran scale de Vue.js. Pero tal vez estás en medio de escribir tu propia aplicación de Vue.js y podrías usar un poco de ayuda. Bueno, en Vue School, estaremos encantados de echarte una mano. Verás, ofrecemos una serie de servicios empresariales, incluyendo desarrollo, consultoría y formación de equipos en forma de videos educativos, así como masterclasses en vivo. Así que si estás interesado en alguno de estos servicios, ponte en contacto con nosotros en team at VueSchool.io y estaremos encantados de ayudarte.

Además, si quieres construir tu propia aplicación real de Vue.js, deberías echar un vistazo a la masterclass de Vue.js 3. Alex y yo enseñamos lo esencial, cosas como el Vue Router y los componentes de un solo archivo, pero también hacemos inmersiones más profundas en temas más complejos como la gestión de estado con Vuex, SEO, y más. Además, si te suscribes a nuestro servicio de suscripción, obtienes acceso a la masterclass de Vue.js 3 más acceso a una serie de otros grandes cursos que te enseñarán cómo ser un experto con Vue. Además, hay una serie de estos cursos que son gratuitos, así que realmente no tienes excusa para no ir y simplemente echarles un vistazo hoy. Muy bien, a todos, realmente disfruto estar aquí con ustedes y gracias por su tiempo.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Vue.js London Live 2021Vue.js London Live 2021
34 min
Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Top Content
State management is not limited to complex applications and transitioning to a store offers significant benefits. Pinia is a centralized state management solution compatible with Vue 2 and Vue 3, providing advanced devtools support and extensibility with plugins. The core API of Pinia is similar to Vuex, but with a less verbose version of stores and powerful plugins. Pinia allows for easy state inspection, error handling, and testing. It is recommended to create one file per store for better organization and Pinia offers a more efficient performance compared to V-rex.
Bienvenido a Nuxt 3
Vue.js London Live 2021Vue.js London Live 2021
29 min
Bienvenido a Nuxt 3
Top Content
Nux3 has made significant improvements in performance, output optimization, and serverless support. Nuxt Bridge brings the Nitro engine for enhanced performance and easier transition between Nuxt 2 and Nuxt Read. Nuxt 3 supports Webpack 5, Bytes, and Vue 3. NextLab has developed brand new websites using Docus technology. Nuxt.js is recommended for building apps faster and simpler, and Nuxt 2 should be used before migrating to Nuxt 3 for stability. DOCUS is a new project that combines Nuxt with additional features like content modules and an admin panel.
Un Año en Vue 3
Vue.js London Live 2021Vue.js London Live 2021
20 min
Un Año en Vue 3
Top Content
Vue 3 has seen significant adoption and improvements in performance, bundle size, architecture, and TypeScript integration. The ecosystem around Vue 3 is catching up, with new tools and frameworks being developed. The Vue.js.org documentation is undergoing a complete overhaul. PNIA is emerging as the go-to state management solution for Vue 3. The options API and composition API are both viable options in Vue 3, with the choice depending on factors such as complexity and familiarity with TypeScript. Vue 3 continues to support CDN installation and is recommended for new projects.
Utilizando Rust desde Vue con WebAssembly
Vue.js London Live 2021Vue.js London Live 2021
8 min
Utilizando Rust desde Vue con WebAssembly
Top Content
In this Talk, the speaker demonstrates how to use Rust with WebAssembly in a Vue.js project. They explain that WebAssembly is a binary format that allows for high-performance code and less memory usage in the browser. The speaker shows how to build a Rust example using the WasmPack tool and integrate it into a Vue template. They also demonstrate how to call Rust code from a Vue component and deploy the resulting package to npm for easy sharing and consumption.
Vue: Actualizaciones de Características
Vue.js London 2023Vue.js London 2023
44 min
Vue: Actualizaciones de Características
Top Content
The Talk discusses the recent feature updates in Vue 3.3, focusing on script setup and TypeScript support. It covers improvements in defining props using imported types and complex types support. The introduction of generic components and reworked signatures for defined components provides more flexibility and better type support. Other features include automatic inference of runtime props, improved define emits and defined slots, and experimental features like reactive props destructure and define model. The Talk also mentions future plans for Vue, including stabilizing suspense and enhancing computer invalidations.
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Vue.js London Live 2021Vue.js London Live 2021
24 min
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Top Content
This Talk discusses handling local state in software development, particularly when dealing with asynchronous behavior and API requests. It explores the challenges of managing global state and the need for actions when handling server data. The Talk also highlights the issue of fetching data not in Vuex and the challenges of keeping data up-to-date in Vuex. It mentions alternative tools like Apollo Client and React Query for handling local state. The Talk concludes with a discussion on GitLab going public and the celebration that followed.

Workshops on related topic

Monitoreo 101 para Desarrolladores de React
React Summit US 2023React Summit US 2023
107 min
Monitoreo 101 para Desarrolladores de React
Top Content
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Si encontrar errores en tu proyecto frontend es como buscar una aguja en un pajar de código, entonces el monitoreo de errores de Sentry puede ser tu detector de metales. Aprende los conceptos básicos del monitoreo de errores con Sentry. Ya sea que estés ejecutando un proyecto de React, Angular, Vue, o simplemente JavaScript “vainilla”, mira cómo Sentry puede ayudarte a encontrar el quién, qué, cuándo y dónde detrás de los errores en tu proyecto frontend.
Nivel de la masterclass: Intermedio
Usando Nitro - Construyendo una Aplicación con el Último Motor de Renderizado de Nuxt
Vue.js London Live 2021Vue.js London Live 2021
117 min
Usando Nitro - Construyendo una Aplicación con el Último Motor de Renderizado de Nuxt
Top Content
Workshop
Daniel Roe
Daniel Roe
Construiremos un proyecto Nuxt juntos desde cero usando Nitro, el nuevo motor de renderizado de Nuxt, y Nuxt Bridge. Exploraremos algunas de las formas en que puedes usar y desplegar Nitro, mientras construimos una aplicación juntos con algunas de las restricciones del mundo real que enfrentarías al desplegar una aplicación para tu empresa. En el camino, dispara tus preguntas hacia mí y haré lo mejor para responderlas.
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Workshop
Mikhail Kuznetsov
Mikhail Kuznetsov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
TresJS crea experiencias 3D de forma declarativa con componentes Vue
Vue.js London 2023Vue.js London 2023
137 min
TresJS crea experiencias 3D de forma declarativa con componentes Vue
Workshop
Alvaro Saburido
Alvaro Saburido
- Introducción a 3D- Introducción a WebGL- ThreeJS- Por qué TresJS- Instalación o configuración de Stackblitz- Conceptos básicos- Configuración del lienzo- Escena- Cámara- Agregar un objeto- Geometrías- Argumentos- Props- Slots- El bucle- Composable UseRenderLoop- Callbacks antes y después de la renderización- Animaciones básicas- Materiales- Material básico- Material normal- Material Toon- Material Lambert- Material estándar y físico- Metalness, roughness- Luces- Luz ambiental- Luz direccional- Luces puntuales- Sombras- Texturas- Cargar texturas con useTextures- Consejos y trucos- Misceláneo- Controles de órbita- Cargar modelos con Cientos- Depuración de tu escena- Rendimiento
Construyendo formularios Vue con VeeValidate
Vue.js London Live 2021Vue.js London Live 2021
176 min
Construyendo formularios Vue con VeeValidate
Workshop
Abdelrahman Awad
Abdelrahman Awad
En este masterclass, aprenderás cómo usar vee-validate para manejar la validación de formularios, gestionar los valores de los formularios y manejar las presentaciones de manera efectiva. Comenzaremos desde lo básico con un formulario de inicio de sesión simple hasta el uso de la API de composición y la construcción de formularios repetibles y de múltiples pasos.

Tabla de contenidos:
- Introducción a vee-validate
- Construcción de un formulario básico con componentes vee-validate
- Manejo de validación y presentaciones de formularios
- Construcción de componentes de entrada validables con la API de composición
- Arrays de campos e inputs repetibles
- Construcción de un formulario de múltiples pasos
Prerrequisitos:
Configuración de VSCode y un proyecto Vite + Vue vacío.
Construyendo Pinia desde cero
Vue.js Live 2024Vue.js Live 2024
70 min
Construyendo Pinia desde cero
Workshop
Eduardo San Martin Morote
Eduardo San Martin Morote
Sumergámonos en cómo funciona Pinia bajo el capó construyendo nuestro propio `defineStore()`. Durante este masterclass cubriremos algunos conceptos avanzados de Vue como la inyección de dependencias y los scopes de efectos. Esto te dará una mejor comprensión de la API de Composición de Vue.js y Pinia. Requisitos: experiencia en la construcción de aplicaciones con Vue y su API de Composición.