Estoy usando Vuejs . Este es mi marcado:
<body>
<div id="main">
<div id="mainActivity" v-component="{{currentActivity}}" class="activity"></div>
</div>
</body>
Este es mi código:
var main = new Vue({
el: '#main',
data: {
currentActivity: 'home'
}
})
;
Cuando cargo la página, aparece esta advertencia:
[Vue warn]: Cannot find element: #main
¿Qué estoy haciendo mal?
javascript
mvvm
vue.js
dopatraman
fuente
fuente
Respuestas:
Creo que el problema es que su script se ejecuta antes de que el elemento dom objetivo se cargue en el dom ... una razón podría ser que ha colocado su script en el encabezado de la página o en una etiqueta de script que se coloca antes del elemento div
#main
. Entonces, cuando se ejecuta el script, no podrá encontrar el elemento objetivo, por lo tanto, el error.Una solución es colocar su script en el controlador de eventos de carga como
Otra sintaxis
fuente
addEventListener
método es "técnicamente" un enfoque más sostenible porque no anula lawindow.onload
propiedad global .<head></head>
sección es lo que me causó el error. Esperando a que se cargue la ventana está funcionando.He resuelto el problema agregando el atributo 'diferir' al elemento 'script'.
fuente
defer
atributo de la etiqueta de script aquí . Retrasará la ejecución del código JS hasta que se haya analizado el DOM, pero antes de que se active elonload
evento de ventana .Me sale el mismo error. la solución es poner el código de su script antes del final del cuerpo, no en la sección de cabecera.
fuente
Lo simple es colocar el script debajo del documento, justo antes de la
</body>
etiqueta de cierre :archivo app.js:
fuente
Puedes resolverlo de dos maneras.
donde necesita poner el mismo código javascript que escribió en cualquier otro archivo JavaScript o en un archivo html.
fuente
Creo que a veces los errores estúpidos pueden darnos este error.
A
fuente