VueJS Router'无法安装组件:未定义模板或渲染功能。'

时间:2017-07-13 13:04:20

标签: laravel webpack laravel-mix

我正在关注此视频:https://laracasts.com/series/learn-vue-2-step-by-step/episodes/26?autoplay=true

我的第一个问题是here,但已经解决了。我把它包含在这里,这样你就可以看到我到目前为止采取了哪些步骤。

现在,我收到此警告:[Vue警告]:无法安装组件:模板或渲染函数未定义。

警告并不是那么糟糕,但路由器视图没有显示出来。也就是说,Home和About链接下面没有任何内容。

master.blade.php

<!doctype html>
    <html lang="en">
    <head>
        <title>My App</title>
        <link rel="stylesheet" href="/css/app.css">
    </head>
    <body>
        <div id="app">
            <router-link to="/">Home</router-link>
            <router-link to="/about">About</router-link>

            <router-view></router-view>
        </div>
        <script src="/js/app.js"></script>
    </body>
</html>

Home.vue

<template>
    <div class="container">
        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <div class="panel panel-default">
                    <div class="panel-heading">Home Page</div>

                    <div class="panel-body">
                        I'm an example component!
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script>
    export default {
        mounted() {
            console.log('Component mounted.')
        }
    }
</script>

任何帮助将不胜感激。 谢谢!

[编辑1]

资源/资产/ JS / app.js

import './bootstrap';
import router from './routes';


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

资源/资产/ JS / bootstrap.js

import Vue from 'vue';
import VueRouter from 'vue-router';
import axios from 'axios';

window.Vue = Vue;
Vue.use(VueRouter);

window.axios = axios;

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

let token = document.head.querySelector('meta[name="csrf-token"]');

if (token) {
    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
    console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}

[编辑2]

资源/资产/ JS / routes.js

import VueRouter from 'vue-router';


let routes = [
    {
        path: '/',
        component: require('./views/Home.vue')
    }
];

export default new VueRouter({
    routes
});

1 个答案:

答案 0 :(得分:1)

啊!感谢TheFallen的问题,我看到了我的问题。这是我的routes.js文件应该是这样的:

import VueRouter from 'vue-router';
import Home from './views/Home.vue';

let routes = [
    {
        path: '/',
        component: Home
    }
];

export default new VueRouter({
    routes
});