路由器视图和Vue应用程序中的组件(laravel)

时间:2018-07-04 10:25:36

标签: laravel laravel-5 vue.js vuejs2 vue-component

我正在尝试在Laravel刀片文件中包含路由器视图和组件。 router-view可以完美运行,并且可以根据页面URL更改组件。但是,我想在<nav></nav>上方添加一个router-view组件,以便可以在每个页面的导航中加载。

我的问题是,怎么了?它不起作用,当前<router-view>会加载正确的组件,但是<nav>不会加载任何内容。

App.js:

import Vue from 'vue';
import VueRouter from 'vue-router';
import Vuex from 'vuex';
import Vuetify from 'vuetify';
import {routes} from './routes';
import Nav from './components/Nav.vue';
import store from './store.js';
import axios from 'axios';

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

Vue.config.productionTip = false;

const router = new VueRouter({
    routes,
});

const app = new Vue({
    el: '#app',
    store,
    router,
    components: {
        Nav
    }
});

Master.blade.php:

<!doctype html>
<html lang="{{ app()->getLocale() }}">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="_token" content="{!! csrf_token() !!}"/>

        <title>Laravel</title>

        <link href="{{ asset('css/app.css') }}" rel="stylesheet"/>

    </head>
    <body>

    <div id="app">
        <nav></nav>

        <router-view></router-view>
    </div>

    <script src="{{ asset('js/app.js') }}"></script>

    </body>
</html>

导航:

<template>
    <div>
        <p>hey</p>
    </div>
</template>

<script>
    export default {
        name: "nav"
    }
</script>

<style scoped>

</style>

1 个答案:

答案 0 :(得分:2)

只需为组件使用其他名称即可,除了nav以外,因为它是有效的HTML保留标记。