Ich versuche, eine Vue App zu bauen, aber ich bin immer diese Fehlermeldung auf der Konsole:[Vue warn]: Fehler beim Mounten der Komponente: Vorlage oder Renderfunktion nicht definiert. Fehler
[Vue warnen]: Fehler Komponente montieren: Vorlage oder Render-Funktion nicht definiert.
Dies ist mein Code:
header.vue
<header>
<div class="page-logo">Foo.com</div>
</header>
<nav>
<ul class="nav">
<li>My Account</li>
<li>Log In</li>
<li>Log Out</li>
<li>Sign Up</li>
</ul>
</nav>
</header>
Das ist mein app.js
:
import Vue from 'vue'
import VueRouter from 'vue-router'
import $ from 'jquery'
Vue.use(VueRouter)
var App = (function (App) {
App.appComp = {
header : Vue.component('mainMenu', require('./components/app/header.vue'))
};
const router = new VueRouter({
routes: [
{
path: '/',
components: {
header: App.appComp.header,
}
}
]
});
App.app = new Vue({
router
}).$mount('#app');
return App;
})(App || {});
Und ich versuche, dies mit Laravel Mix zu bauen. Aber ich habe diesen Fehler in der Konsole:
[Vue warn]: Fehler Komponente montieren: Vorlage oder Render-Funktion nicht definiert. in ---> bei /opt/lampp/htdocs/gif/resources/assets/js/components/app/header.vue gefunden
ich in google gesucht und ich fand diese Antwort: Vue template or render function not defined yet I am using neither?
Also habe ich versucht, die Definition in Mix zu überschreiben. Ich tat:
mix.webpackConfig({
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js' // 'vue/dist/vue.common.js' for webpack 1
}
}
});
Das hat nicht funktioniert, so dass ich versuchte, die webpack Konfigurationsdatei
ich dort diese Zeile gefunden zu ändern:
module.exports.resolve = {
extensions: ['*', '.js', '.jsx', '.vue'],
alias: {
'vue$': 'vue/dist/vue.common.js'
}
};
ich mit esm gemeinsam zu ersetzen versucht, hat nicht geholfen.
Was soll ich tun?
Hallo, danke, es funktioniert, aber nur, dass Sie wissen, können Sie nicht zwei Stammelemente innerhalb des Template-Tag haben, müssen Sie sie wickeln mit 'div', erfahre ich, dass, wenn ich einen Fehler bekam Beim Hinzufügen des Tags "template" –
@NatiV Das stimmt! Ich füge der Antwort ein Div hinzu. Ich hätte das fangen sollen – Bert