laravel 5.6和vue.js中的<router-view>不起作用

时间:2018-09-21 12:06:37

标签: laravel vue.js routing

我不知道我在做什么错,但是我的路由器视图不起作用。

我有一个基于Laravel 5.6的应用程序,我想通过vue.js进行查看。 组件“ Navbar”和“ Foot”已正确加载,但没有看到应在App.vue中加载的“ Home”组件

路由也不起作用。在浏览器中输入/ about时,出现错误“抱歉,找不到您要查找的页面。”

在我的文件下面:

App.vue

<template>
    <div class="app">
        <Navbar/>
        <router-view></router-view> 
        <Foot/>
    </div>
</template>

<script>
export default {
    name: 'App',
    data () {
        return{

        }
    }
}
</script>

Home.vue

<template>
    <div class="home">
        <h1>Home</h1>   
    </div>
</template>

<script>
export default {
    name: 'Home',
    data () {
        return {

        }
    }

}
</script>

About.vue

<template>
    <div class="about">
        <h1>O nas</h1>
    </div>
</template>

<script>
export default {
    name: 'About',
    data (){
        return{

        }
    }
}
</script>

app.js

require('./bootstrap');
import Vue from 'vue';
import VueRouter from 'vue-router';
import Vuex from 'vuex';

window.Vue = require('vue'); 

Vue.use(VueRouter);
Vue.use(Vuex);

let AppLayout = require('./components/App.vue');

// home tempalte
const Home = Vue.component('Home', require('./components/Home.vue'));
// About tempalte
const About = Vue.component('About', require('./components/About.vue'));

// register components
const Navbar = Vue.component('Navbar', require('./components/Navbar.vue'));
const Foot = Vue.component('Foot', require('./components/Foot.vue'));

const routes = [
    {
        path: '/',
        name: 'Home',        
        component: Home
    },
    {

        name: 'About', 
        path: '/about',   
        component: About
    }
];

const router = new VueRouter({ mode: 'history', routes: routes});

new Vue(
    Vue.util.extend(
        { router },
        AppLayout
    )
).$mount('#app');

1 个答案:

答案 0 :(得分:0)

您需要教laravel的路由器如何与vue一起玩。
查看此链接:https://medium.com/@piethein/how-to-combine-vuejs-router-with-laravel-1226acd73ab0

您需要阅读以下内容:

Route::get('/vue/{vue_capture?}', function () {
 return view('vue.index');
})->where('vue_capture', '[\/\w\.-]*');