[Vue warn]: не удается найти элемент



Я использую Vuejs. Это моя разметка:



<body>
<div id="main">
<div id="mainActivity" v-component="{{currentActivity}}" class="activity"></div>
</div>
</body>


Это мой код:



var main = new Vue({
el: '#main',
data: {
currentActivity: 'home'
}
})
;


когда я загружаю страницу, Я получаю это предупреждение:



[Vue warn]: Cannot find element: #main


что я делаю не так?

626   4  

4 ответов:

Я думаю, что проблема в том, что ваш скрипт выполняется до того, как целевой элемент dom будет загружен в dom... одной из причин может быть то, что вы разместили свой сценарий в голове или в тег скрипт, который ставится перед элементом div #main. Поэтому, когда скрипт выполняется он не сможет найти целевой элемент, таким образом, ошибку.

одним из решений является размещение вашего скрипта в обработчике событий загрузки, например

window.onload = function () {
    var main = new Vue({
        el: '#main',
        data: {
            currentActivity: 'home'
        }
    });
}

другой синтаксис

window.addEventListener('load', function () {
    //your script
})

Я решил проблему, добавив атрибут 'defer' к элементу 'script'.

Я получаю ту же ошибку. решение состоит в том, чтобы поместить код сценария до конца тела, а не в головной части.

самое простое-поставить скрипт под документом, как раз перед вашим закрытием </body> теги:

<body>
   <div id="main">
      <div id="mainActivity" v-component="{{currentActivity}}" class="activity"></div>
   </div>
   <script src="app.js"></script>
</body>

приложение.js file:

var main = new Vue({
    el: '#main',
    data: {
        currentActivity: 'home'
    }
});

Comments

    Ничего не найдено.