Saltar al contenido principal
Vue.js

Vue.js: Property or method is not defined on the instance but referenced during render

Cómo resolver el warning de Vue 'Property or method is not defined on the instance'. Causas y soluciones para Vue 2 y Vue 3.

Error: [Vue warn]: Property or method is not defined on the instance

¿Por qué ocurre?

Vue no puede encontrar una propiedad o método referenciado en el template porque: - La variable no está definida en `data()`, `setup()` o `computed` - Error tipográfico entre el nombre en el template y el nombre en el script - En Vue 3, olvidaste hacer `return` de la variable en `setup()` (Options API de Vue 2 no lo requiere) - Intentas acceder a una prop que no está declarada en `props` - La variable existe en el componente padre pero no se pasó como prop

Solución paso a paso

Vue 2 — Asegúrate de definir en data()

export default {
  data() {
    return {
      // ✅ Definir aquí todas las variables del template
      mensaje: 'Hola',
      contador: 0,
      items: []
    }
  },
  methods: {
    // ✅ Definir aquí todos los métodos del template
    incrementar() {
      this.contador++;
    }
  }
}

Vue 3 Options API — igual que Vue 2

Vue 3 Composition API — no olvidar el return


Vue 3

Props no declaradas


Cómo evitarlo en el futuro

- Usa `<script setup>` en Vue 3 para eliminar la necesidad de hacer `return` - Activa las Vue DevTools para inspeccionar el estado reactivo en tiempo real - TypeScript con Volar/Vue Official da errores en tiempo de compilación antes de llegar a runtime - Nombra variables y métodos de forma consistente (camelCase)

Vue.jsVue 3Composition APItemplatereactive

¿Quieres que una IA te ayude? Genera el prompt perfecto para tu error:

Generador de Prompts

¿Necesitas desarrollo a medida?

Apps web, IA, módulos ERP — cuéntame tu proyecto.