#javascript #laravel-5 #vue.js
#javascript #laravel-5 #vue.js
Вопрос:
работа с laravel 5.7 и vue.js мой app.js файл выглядит следующим образом,
require('./bootstrap');
window.Vue = require('vue');
import VueRouter from 'vue-router'
Vue.use(VueRouter)
let routes = [
{ path: '/dashboard', component: require('./components/Dashboard.vue') },
{ path: '/profile', component: require('./components/Profile.vue') }
]
const router = new VueRouter({
routes // short for `routes: routes`
})
Vue.component('example-component', require('./components/ExampleComponent.vue').default);
const app = new Vue({
el: '#app',
router
});
и мне нужна следующая ссылка с файлом vue
<router-link to="/dashboard" class="nav-link">
и файл Dashboard.vue выглядит следующим образом
<template>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card card-default">
<div class="card-header">Dashboard Component</div>
<div class="card-body">
I'm an example component.
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
mounted() {
console.log('Component mounted.')
}
}
</script>
но когда я нажимаю на ссылку выше на файл dashbord.vue, он не загружается. в адресной строке отображается только URL. моя ошибка консоли заключается в следующем
[Vue warn]: Failed to mount component: template or render function not defined. found in ---> <Anonymous> <Root>
как можно исправить эту ошибку
Комментарии:
1. Вы действительно сохранили
ExampleComponent
..?2. @Ohgod Почему, что ты имел в виду?
3. Здесь нет никаких решений…
Ответ №1:
Вам нужно добавить App.vue
<template>
<div>
<router-link to="/dashboard" class="nav-link">Dashboard</router-link>
</div>
</template>
<script>
export default {
// some code here if needed
}
</script>
а затем используйте его в main.js
require('./bootstrap'); // maybe better use import "./bootstrap"
import Vue from 'vue';
import VueRouter from 'vue-router';
import App from "./App.vue";
import Dashboard from './components/Dashboard.vue';
import Profile from './components/Profile.vue';
import ExampleComponent from './components/ExampleComponent.vue';
Vue.use(VueRouter)
window.Vue = Vue; // why you do that???
let routes = [
{ path: '/dashboard', component: Dashboard },
{ path: '/profile', component: Profile }
]
const router = new VueRouter({
routes // short for `routes: routes`
});
Vue.component('example-component', ExampleComponent);
new Vue({
router,
render: (h) => h(App)
}).$mount('#app');