J'utilise Vuejs . Voici mon balisage:
<body>
<div id="main">
<div id="mainActivity" v-component="{{currentActivity}}" class="activity"></div>
</div>
</body>
Voici mon code:
var main = new Vue({
el: '#main',
data: {
currentActivity: 'home'
}
})
;
Lorsque je charge la page, je reçois cet avertissement:
[Vue warn]: Cannot find element: #main
Qu'est-ce que je fais mal?
javascript
mvvm
vue.js
dopatraman
la source
la source
Réponses:
Je pense que le problème est que votre script est exécuté avant que l'élément dom cible ne soit chargé dans le dom ... une raison pourrait être que vous avez placé votre script dans la tête de la page ou dans une balise de script placée avant l'élément div
#main
. Ainsi, lorsque le script est exécuté, il ne pourra pas trouver l'élément cible, d'où l'erreur.Une solution consiste à placer votre script dans le gestionnaire d'événements de chargement comme
Une autre syntaxe
la source
addEventListener
méthode est "techniquement" une approche plus maintenable car elle ne remplace pas lawindow.onload
propriété globale .<head></head>
section est ce qui m'a causé l'erreur. L'attente du chargement de la fenêtre fonctionne.J'ai résolu le problème en ajoutant l'attribut «defer» à l'élément «script».
la source
defer
attribut de la balise de script ici . Cela retardera l'exécution du code JS jusqu'à ce que le DOM ait analysé, mais avant que l'onload
événement de fenêtre ne soit déclenché.J'ai la même erreur. la solution est de mettre votre code de script avant la fin du corps, pas dans la section head.
la source
Le plus simple est de placer le script sous le document, juste avant votre
</body>
balise de fermeture :fichier app.js:
la source
Vous pouvez le résoudre de deux manières.
où vous devez mettre le même code javascript que vous avez écrit dans n'importe quel autre fichier JavaScript ou dans un fichier html.
la source
Je pense que parfois des erreurs stupides peuvent nous donner cette erreur.
À
la source