1. ホーム
  2. javascript

[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?

2022-02-03 23:29:37

質問

これは私のメインのjavascriptファイルです。

import Vue from 'vue'

new Vue({
  el: '#app'
});

私のHTMLファイルです。

<body>
    <div id="app"></div>

    <script src="{{ mix('/js/app.js') }}"></script>
</body>

Vue.jsのランタイムビルドによるWebpackの設定。

alias: {
    'vue$': 'vue/dist/vue.runtime.common.js'
}

このよく知られたエラーはまだ出ています。

[Vue warn]: Failed to mount component: template or render function not defined. (ルートインスタンスで見つかりました)

Vueをマウントする#app divの中に何も入れていないのに、どうしてrender/templateエラーが出るのでしょうか?それは次のようになります。 found in root が、コンテンツすらないため何もない?

これがうまくいかない場合、どのようにマウントすればいいのでしょうか?

編集する

このように試してみたところ、うまくいきそうです。

new Vue(App).$mount('#app');

を使用することは理にかなっています。 el プロパティは、その dom 要素のコンポーネントを「スキャン」していることを意味し、ランタイムビルドにはコンパイラがないため、役に立ちません。

それでも、特に私の#app div全体が空になっているときに投げられるエラーメッセージは、非常に奇妙なものです。

誰かが私の考えを確認してくれるといいのですが。

解決方法は?

このエラーが発生する理由は、次のようにHTMLファイルのテンプレートをサポートしないランタイムビルドを使用しているためです。 vuejs.org

要するに、Vueのロードされたファイルでは、テンプレートがコンパイル時にレンダー関数に変換され、ベース関数がhtml要素からコンパイルされようとしているのです。