Nuevas formas de Vue

Rate this content
Bookmark

Breve introducción a las nuevas características de Vue 3 y Vite, luego enfocarse en cómo esas características / mentalidad afectan la forma en que pensamos en las herramientas y la experiencia del desarrollador. Lo cual nos lleva a mi proyecto Vitesse y varios unplugins que mejoran aún más la experiencia del desarrollador de Vue (haré algunas demostraciones cortas en el medio). Finalmente, presentar las formas de utilizar esas nuevas características en las aplicaciones existentes de Vue 2 hoy y facilitar las migraciones.

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

FAQ

Vue 3 introduce un nuevo conjunto de API llamado API de composición, que simplifica la estructura del código al usar una función llamada setup. Ofrece un mejor soporte de TypeScript, mejor composabilidad y la posibilidad de reutilizar la lógica de los componentes de manera más eficiente.

Vite es un servidor de desarrollo que utiliza el soporte nativo de ESM del navegador, permitiendo un inicio más rápido del servidor y transpilaciones de módulos cuando es necesario. Mejora el rendimiento mediante la sustitución de módulos en tiempo real y simplifica la configuración en comparación con herramientas como Webpack.

La nueva sintaxis de configuración de script en Vue 3 permite declarar variables, funciones y componentes en el nivel superior de los archivos, haciendo que estén directamente disponibles dentro de los componentes sin necesidad de registro adicional, lo que simplifica y reduce la cantidad de código necesario.

La auto-importación de componentes mediante el complemento de Vite permite usar componentes en las plantillas sin necesidad de importarlos explícitamente. Mejora la división de código, elimina la necesidad de registros manuales y optimiza la resolución de componentes para mejorar el rendimiento.

Anthony Fu agradece el patrocinio a través de GitHub para apoyar su trabajo en proyectos de código abierto. Los interesados pueden encontrar y patrocinar su trabajo directamente en su perfil de GitHub.

Para los usuarios de Vue 2, se ofrecen polyfills y paquetes como vue-composition-api y Unplugin vue 2 square setup para incorporar características de Vue 3, como la API de composición. Además, hay complementos de Vite específicos para mejorar la experiencia de desarrollo en Vue 2 y Nuxt 2.

Unplugin es una interfaz de complemento universal compatible con diversas herramientas como Webpack, Vite y Rollup. Permite a los desarrolladores escribir un complemento una vez y usarlo en diferentes frameworks y herramientas, facilitando la integración y la reutilización de código en diversos entornos de desarrollo.

Anthony Fu
Anthony Fu
16 min
21 Oct, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla discutió nuevas formas de usar Vue, incluyendo la introducción de la API de composición y la sintaxis de configuración de scripts. Se destacó la herramienta Vite por sus mejoras de rendimiento y mejoras en la experiencia del desarrollador. Se presentó la importación automática de componentes a través de los componentes del plugin Vite como una forma de mejorar la división de código y eliminar el registro manual. También se discutió el uso de los plugins Vite, Unplugin y el soporte de Vue 2. La charla mencionó que Nuxt 3 incluirá muchas de estas características.
Available in English: New Ways to Vue

1. Introducción a las nuevas formas de Vue

Short description:

Hola a todos, me alegra estar aquí en Vue London. Hoy mi tema es las nuevas formas de Vue, cómo las nuevas herramientas y técnicas afectan la forma en que usamos Vue y construimos aplicaciones. En Vue 3, introdujimos un nuevo conjunto de API llamado API de composición. En la API de composición, solo tenemos una función llamada setup. Las funciones del ciclo de vida ahora se proporcionan como hooks, por lo que podemos tener un mejor soporte de TypeScript y una mejor composabilidad.

Hola a todos, me alegra estar aquí en Vue London. Hoy mi tema es las nuevas formas de Vue, cómo las nuevas herramientas y técnicas afectan la forma en que usamos Vue y construimos aplicaciones. Mi nombre es Anthony Fu, y soy miembro colaborador de Vue y Vite. También soy el creador de SlideDev, Vueuse, VDesk y otros proyectos de código abierto. Soy un fanático del código abierto y actualmente trabajo en Nuxt Labs. Mi nombre de usuario en GitHub es antfu, también puedes encontrarme en Twitter. Antes de comenzar, quiero agradecer a todos mis patrocinadores por apoyar mi trabajo. Si encuentras mi trabajo útil, también puedes patrocinarme en GitHub, significaría mucho para mí.

Entonces hablemos sobre el tema de hoy, las nuevas formas de Vue. Comencemos hablando de Vue 2 primero. Debajo de eso, tenemos los componentes de archivo único de Vue. En este componente, tenemos una etiqueta de plantilla y una etiqueta de script. En la etiqueta de script, necesitaremos importar las cosas que queremos. Por ejemplo, import Vue from 'vue' y luego exportar el objeto de componentes predeterminado usando Vue.extend, y luego necesitaremos registrar nuestros componentes, hacer cosas y declarar datos y métodos. El problema aquí es que tenemos demasiado código de plegado de Scala para cada componente, y también las mezclas están limitadas para la reutilización de nuestro código y también tenemos algunos problemas de soporte de TypeScript.

Para resolver esto, en Vue 3, introdujimos un nuevo conjunto de API llamado API de composición. Hagamos una comparación rápida aquí. A la izquierda, tenemos la API de opciones, y a la derecha, tenemos la nueva API de composición. Como puedes ver, en la API de opciones, solíamos tener múltiples propiedades para el objeto. Por ejemplo, tenían método, crear, y así sucesivamente. Pero en la API de composición, solo tenemos una función llamada setup. Las funciones del ciclo de vida ahora se proporcionan como hooks, por lo que puedes usarlas dentro de nuestras funciones de setup. Así que tenemos todo dentro del contexto único. De esta manera, podemos tener un mejor soporte de TypeScript. Pero además de eso, lo más importante es que podemos tener una mejor composabilidad. Por ejemplo, tenemos un componente con las funciones de setup. Si queremos reutilizar esta lógica, simplemente podemos copiarla y tenerla dentro de nuevos archivos y envolverla con las funciones. En este caso, lo llamamos useDark. Entonces podemos refactorizar nuestros componentes para importar las funciones useDark y reutilizarlas. Los componentes se comportarán exactamente igual que antes, pero ahora podemos reutilizar nuestras funciones dentro de otros componentes y tener una mejor organización de nuestra lógica.

2. Sintaxis de configuración de script y herramientas de Vite

Short description:

En la nueva sintaxis de configuración de script, las variables, funciones y componentes dentro de la configuración de script están disponibles directamente dentro de los componentes. La sintaxis V-bind dentro de la etiqueta de estilo permite una mejor organización de la plantilla y el estilo. Vue 3 y Vite ofrecen un mejor rendimiento, experiencia de desarrollo y nuevas formas de utilizar Vue. Con la nueva sintaxis de configuración de script, ya no es necesario registrar componentes. La importación automática de componentes a través del complemento de componentes de Vite proporciona una mejor división de código y elimina la necesidad de registro manual.

Entonces hablemos sobre la sintaxis de configuración de script. Como puedes ver, incluso con la nueva API de composición, tenemos muchos códigos de andamiaje en nuestros componentes. Por ejemplo, en este caso, las líneas resaltadas son las cosas que realmente nos importan, pero debemos escribir el resto para que Vue lo entienda. En la nueva sintaxis de configuración de script, podemos declararlos todos en el nivel superior. Y las variables, funciones y componentes dentro de la configuración de script están disponibles directamente dentro de los componentes. Esto se introdujo inicialmente en Vue 3.1 como una función experimental y ahora es estable en Vue 3.2.

Otra nueva característica es la sintaxis V-bind dentro de la etiqueta de estilo. En el pasado, si queríamos tener estilos dinámicos en los componentes, primero debíamos declarar algunos datos reactivos dentro de la sección de datos y luego vincular los datos dentro de la plantilla. Pero ahora, con V-bind, podemos tener la vinculación dentro de nuestra etiqueta de estilo, lo que nos permite tener una mejor organización de la plantilla y el estilo.

Finalmente, hablemos de la nueva herramienta predeterminada, Vite. ¿Qué es Vite? Apuesto a que muchos de ustedes ya han oído hablar de eso, pero en caso de que no, hagamos una breve introducción. Solíamos tener empaquetadores como Webpack y Rollup. El problema con ellos es que generalmente están diseñados para la construcción de producción y necesitan empaquetar todo el proyecto para iniciar el servidor de desarrollo. También implican configuraciones complejas y las sustituciones de módulos se vuelven más lentas a medida que el proyecto crece. Ahora tenemos servidores de desarrollo, como Snowpack y Vite. Estos servidores de desarrollo están diseñados específicamente para el desarrollo web. Aprovechamos el soporte nativo de ESM del navegador y ya no necesitamos empaquetar el código. El servidor se inicia de inmediato y solo transpilamos los módulos según sea necesario. De esta manera, también tenemos sustituciones de módulos en tiempo real y muchas más posibilidades. Entonces, ¿qué nos ofrecen Vue 3 y Vite? No solo un mejor rendimiento y una mejor experiencia de desarrollo, sino también nuevas formas de utilizar Vue. Veamos cómo usamos los componentes de Vue. Primero, necesitamos importarlos y darles un nombre, y luego registrar los componentes para poder usarlos en la plantilla. El problema aquí es que nuestro código se vuelve bastante verboso y el nombre de cada componente se repite al menos cuatro veces. Esto no solo ralentiza nuestro desarrollo, sino que también cambiar el nombre de los componentes se vuelve bastante frustrante. Con la nueva sintaxis de configuración de script, ya no es necesario registrar los componentes. Pero el problema es que el nombre aún se repite tres veces. ¿Y si podemos mejorarlo? Introduzcamos la importación automática de componentes a través del complemento de componentes de Vite. Dado que ya conocemos el nombre de cada componente, podemos mapearlos directamente para usarlos en la plantilla. ¿Cómo lo hacemos? Utilizamos la resolución de componentes en tiempo de compilación para los componentes en el directorio de componentes de origen. El uso es similar al de los registros globales, pero la diferencia es que con la importación automática, podemos lograr una mejor división de código y ya no necesitamos hacer el registro manual.

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

Vite: Repensando las Herramientas de Frontend
JSNation Live 2021JSNation Live 2021
31 min
Vite: Repensando las Herramientas de Frontend
Top Content
Vite is a next-generation build tool that leverages native ES modules for improved performance. It eliminates the need for bundling and improves hot module replacement. Vite provides an opinionated default configuration while still allowing advanced customization through plugins. It is framework agnostic and can be used for React and other applications. Vite is being adopted by Next.js and Create React App, and integration with Nuxt 3 offers significant speed improvements.
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.

Workshops on related topic

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
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
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
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.
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
Embarcándonos en una aventura con Nuxt 3, Motion UI y Azure
JSNation 2022JSNation 2022
141 min
Embarcándonos en una aventura con Nuxt 3, Motion UI y Azure
WorkshopFree
Melanie de Leeuw
Melanie de Leeuw
¡Nos encantan las aplicaciones web fáciles de crear y desplegar! Entonces, veamos qué puede hacer una pila tecnológica muy actual como Nuxt 3, Motion UI y Azure Static Web Apps. Podría ser perfectamente un trío de oro en el desarrollo web moderno. O podría ser una hoguera de errores y problemas. De cualquier manera, será una aventura de aprendizaje para todos nosotros. Nuxt 3 se lanzó hace apenas unos meses y no podemos esperar más para explorar sus nuevas características, como su compatibilidad con Vue 3 y el Motor Nitro. Agregamos un poco de estilo a nuestra aplicación con la biblioteca Sass Motion UI, porque el diseño estático está pasado de moda y las animaciones vuelven a estar de moda.Nuestra fuerza impulsora de la pila será Azure. Las aplicaciones web estáticas de Azure son nuevas, casi listas para producción y una forma ingeniosa y rápida para que los desarrolladores desplieguen sus sitios web. Así que, por supuesto, debemos probar esto.Con algunas Azure Functions esparcidas por encima, exploraremos lo que puede hacer el desarrollo web en 2022.
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.