- Aprender
-
Ecosistema
Ayuda
Herramientas
Librerías Oficiales
Noticias
Lista de Recursos
- Equipo
- Apoyar Vue
- Traducciones
Guía
Conocimientos Esenciales
- Instalación
- Introducción
- La instancia Vue
- Sintaxis de Template
- Propiedades Computadas y Observadores
- Enlace Clases y Estilos
- Renderización Condicional
- Renderizado de lista
- Manejo de eventos
- Binding en Formularios
- Conceptos Básicos de Componentes
Transiciones & Animaciones
- Efectos de Transición
Componentes en Profundidad
- Registro de Componente
- Propiedades
- Eventos personalizados
- Slots
- Componentes Dinámicos & Asíncronos
- Handling Edge Cases
- Transiciones de estado
Reusabilidad & Composición
- Mixins
- Directivas Personalizadas
- Funciones de renderizado & JSX
- Plugins
- Filtros
- Publicación en Producción
Herramientas
- Componentes de un Solo Archivo (Single File Components)
- Testing Unitario
- Soporte TypeScript
Escalando la Aplicación
- Enrutamiento
- Administración del Estado
- Renderizado del lado de Servidor
Funcionamiento Interno
- Reactividad en profundidad
Migraciones
- Migración desde Vue 1.x
- Migración desde Vue Router 0.7.x
- Migración de Vuex 0.6.x a 1.0
Meta Documentación
- Comparación con otros frameworks
- Únete a la comunidad Vue.js!
- Conozca al equipo
Soporte TypeScript
En Vue 2.5.0+, hemos mejorado enormemente nuestras declaraciones de tipo para trabajar con la API predeterminada basada en objetos. Al mismo tiempo, introduce algunos cambios que requieren acciones de actualización. Lea esta publicación del blog para más detalles.
Declaración Oficial en Packetes NPM
Un sistema de tipo estático puede ayudar a prevenir muchos errores potenciales en el tiempo de ejecución, especialmente a medida que las aplicaciones crecen. Es por eso que Vue se envía con declaraciones oficiales de tipo para TypeScript - no solo en Vue Core, sino también para vue-router y vuex.
Ya que estos se publican en NPM, y el último TypeScript sabe cómo resolver las declaraciones de tipo en los paquetes de NPM, esto significa que cuando se instala a través de NPM, no necesita herramientas adicionales para usar TypeScript con Vue.
Configuración recomendada
// tsconfig.json |
Tenga en cuenta que debe incluir strict: true
(o, al menos, no ImplicitThis: true
, que es parte de la marca strict
) para aprovechar la verificación de tipos de this
en los métodos de los componentes, de lo contrario, siempre se tratará como cualquier
tipo.
Ver documentos de opciones del compilador de TypeScript para más detalles.
Herramientas de desarrollo
Creación de Proyecto
Vue CLI 3 puede generar nuevos proyectos que utilizan TypeScript. Para empezar:
# 1. Instale Vue CLI, si aún no está instalado |
Soporte para Editor
Para desarrollar aplicaciones de Vue con TypeScript, recomendamos encarecidamente el uso de Visual Studio Code, que proporciona una gran compatibilidad inmediata con TypeScript. Si está utilizando components de un archivos (SFC) obtenga la impresionante extension Vetur que proporciona inferencia de TypeScript dentro de SFC y muchas otras características excelentes.
WebStorm también ofrece compatibilidad inmediata con TypeScript y Vue.
Uso Básico
Para permitir que TypeScript infiera correctamente los tipos dentro de las opciones de componentes de Vue, debe definir los componentes con Vue.component
o Vue.extend
:
import Vue from 'vue' |
Componentes Vue Class-Style
Si prefiere una API basada en clase al declarar componentes, puede usar el decorador de componente de clase vue mantenido oficialmente:
import Vue from 'vue' |
Aumentando los Tipos para Usar con Plugins
Los Plugins pueden agregarse a las propiedades de instancia/global de Vue y las opciones de componentes En estos casos, se necesitan declaraciones de tipo para hacer que los complementos se compilen en TypeScript. Afortunadamente, hay una característica de TypeScript para aumentar los tipos existentes llamados aumento de módulo.
Por ejemplo, para declarar una propiedad de instancia $myProperty
de tipo string
:
// 1. Asegúrese de importar 'vue' antes de declarar los tipos aumentados |
Después de incluir el código anterior como un archivo de declaración (como my-property.d.ts
) en su proyecto, puede usar $myProperty
en una instancia de Vue.
var vm = new Vue() |
También puede declarar propiedades globales adicionales y opciones de componentes:
import Vue from 'vue' |
Las declaraciones anteriores permiten compilar el siguiente código:
// Propiedad Global |
Anotando tipos de devoluciones
Debido a la naturaleza circular de los archivos de declaración de Vue, TypeScript puede tener dificultades para inferir los tipos de ciertos métodos. Por este motivo, es posible que tenga que anotar el tipo de retorno en métodos como render
y aquellos en computed
.
import Vue, { VNode } from 'vue' |
Si encuentra que la inferencia de tipos o la finalización de miembros no funciona, la anotación de ciertos métodos puede ayudar a resolver estos problemas. El uso de la opción --noImplicitAny
ayudará a encontrar muchos de estos métodos sin anotar.