Cannot find element: #app
Vue.js でSPAサイトを用いてデザイン開発をしていた際に、以下のエラーが出て結構悩みました。
app.js:4277 [Vue warn]: Cannot find element: #app
解決法
scriptタグにdeferがつけると解決する場合があります。
・NG
<script src="{{ mix('js/app.js') }}"></script>
・OK
<script src="{{ mix('js/app.js') }}" defer></script>
HTML読み込み前にJavaScript実行に入ると、このエラーが出ます。
それでも治らないとき
基本的にCannot find element: #appのエラーが起こる原因はvueのファイルを読み込む順番がおかしいことが考えられます。
特にvuetifyなどの追加モジュールを組み合わせると順番がおかしくなってこのエラーが発生しがちなので、いったん公式ドキュメントのコードを参考にコードの順番を並べなおすのが良いと思います。
<index.html>
<!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@6.x/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
</head>
<body>
<div id="app">
<v-app>
<v-main>
<v-container>Hello world</v-container>
</v-main>
</v-app>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
<script>
new Vue({
el: '#app',
vuetify: new Vuetify(),
})
</script>
</body>
</html>
参照:https://vuetifyjs.com/ja/getting-started/installation/#electron3067306e52297528
参照:https://www.softel.co.jp/blogs/tech/archives/6143
コメント