J'ai attaché des composants à router-link mais il ne se charge pas. J'utilise Vue js dans Laravel. Je travaille avec Laravel et Vue
Voici mon fichier lame de Laravel.
[Vue warn]: Failed to mount component: template or render function not defined.
found in
---> <Anonymous>
<AppMain> at resources/js/components/front/common/AppMain.vue
<Root>
Vue.component('app-main', require('./components/front/common/AppMain.vue').default);
Vue.component('app-login', require('./components/auth/Login.vue'));
const routes = [
{
path: '*',
component: require('./components/front/common/AppMain.vue')
},
{
path: '/login',
component: require('./components/auth/Login.vue')
}
]
const router = new VueRouter({
routes
})
const app = new Vue({
el: '#app',
router
});
<template>
<div>
<router-view></router-view>
</div>
</template>
<script>
export default
{
}
<div id="app">
<app-main></app-main>
</div>
3 Réponses :
Avez-vous essayé de supprimer ".default" de l'importation du composant principal de l'application? Dans mes premiers jours de travail vue / laravel, cela m'a également jeté. J'ai trouvé plus sûr d'utiliser simplement "importer depuis '../module path'" en haut à la place ou les états "require (...)". Je ne me souviens pas de quelle spécification de JavaScript cela renvoie.
const routes = [{chemin: '/', nom: 'AppMain', composant: AppMain}, {chemin: '/ login', nom: 'Login', composant: Login}]
Donné comme ça. Mais une erreur arrive. [Vue warn]: Élément personnalisé inconnu:
Veuillez essayer avec ce code dans app.js.
import Vue from 'vue';
window.Vue = require('vue');
import VueRouter from 'vue-router';
Vue.use(VueRouter);
Vue.component('app-main',require('./components/front/common/AppMain.vue').default);
Vue.component('app-login', require('./components/auth/Login.vue'));
import appMain from './components/front/common/AppMain';
import appLogin from './components/auth/Login';
const routes = [
{
path: '/',
component: appMain,
children: [
{
path: 'login',
component: appLogin
}
]
]
const router = new VueRouter({
routes
})
const app = new Vue({
el: '#app',
router: router
});
Veuillez essayer avec ce code pour voir si cela fonctionne.
const app = new Vue({
router,
el: '#app',
render: h => h(App) //add this new line
});
github.com/vuejs/vue-router/issues/713