Я использую 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
Что я делаю не так?
javascript
mvvm
vue.js
dopatraman
источник
источник
Ответы:
Я думаю, проблема в том, что ваш скрипт выполняется перед загрузкой целевого элемента dom в dom ... одной из причин может быть то, что вы поместили свой скрипт в заголовок страницы или в тег скрипта, который помещен перед элементом div
#main
, Поэтому, когда скрипт выполняется, он не сможет найти целевой элемент, таким образом, ошибку.Одним из решений является размещение вашего скрипта в обработчике события загрузки, например
Другой синтаксис
источник
addEventListener
метод «технически» более приемлемый, потому что он не переопределяет глобальноеwindow.onload
свойство.<head></head>
раздел - вот что вызвало у меня ошибку. Ожидание загрузки окна работает.Я решил проблему, добавив атрибут 'defer' к элементу 'script'.
источник
defer
работает атрибут тега script здесь . Это задержит выполнение кода JS до тех пор, пока DOM не проанализирует, но до того, как будет запущеноonload
событие окна .Я получаю ту же ошибку. решение состоит в том, чтобы поместить код скрипта перед концом тела, а не в раздел заголовка.
источник
Простая вещь - поместить скрипт под документом непосредственно перед закрывающим
</body>
тегом:файл app.js:
источник
Вы можете решить это двумя способами.
где вам нужно поместить тот же код JavaScript, который вы написали в любом другом файле JavaScript или в HTML-файл.
источник
Я думаю, что иногда глупые ошибки могут дать нам эту ошибку.
к
источник