IT story

[Vue 경고] : 요소를 찾을 수 없습니다

hot-time 2020. 6. 23. 07:19
반응형

[Vue 경고] : 요소를 찾을 수 없습니다


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

내가 뭘 잘못하고 있죠?


문제는 대상 dom 요소가 dom에로드되기 전에 스크립트가 실행되는 것입니다 ... 한 가지 이유는 페이지의 헤드 또는 div 요소 앞에있는 스크립트 태그에 스크립트를 배치했기 때문일 수 있습니다 #main. 따라서 스크립트가 실행될 때 대상 요소를 찾을 수 없으므로 오류가 발생합니다.

한 가지 해결책은 다음과 같이로드 이벤트 핸들러에 스크립트를 배치하는 것입니다.

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

다른 구문

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

'script'요소에 'defer'속성을 추가하여 문제를 해결했습니다.


같은 오류가 발생합니다. 해결책은 헤드 섹션이 아닌 본문 끝 앞에 스크립트 코드를 넣는 것입니다.


간단한 것은 닫는 </body>태그 바로 앞에 스크립트를 문서 아래에 두는 것입니다 .

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

app.js 파일 :

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

참고 URL : https://stackoverflow.com/questions/29484431/vue-warn-cannot-find-element

반응형