router-link不会在Vuejs中正确创建链接

时间:2017-07-01 07:04:23

标签: javascript laravel vuejs2 vue-router

我想通过Vue-router插件创建指向组件的简单链接。

为此,我创建了一个routes.js文件,如下所示:

import VueRoute from 'vue-router';

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

export default new VueRoute({
    routes
});

还有app.js这样的文件:

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

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

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

这是我的母版页内容:

<!doctype html>
<html lang="{{ config('app.locale') }}">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/css/app.css">
    <title>My First Laravel Vue App </title>
</head>
<body>
<div id="app">

    <router-link to="/">Home</router-link>
    <router-link to="/About">About</router-link>

</div>

<script src="/js/app.js"></script>
</body>
</html>

但是在打开页面后编译所有js文件后,router-link不起作用,只是创建了一个简单的空html注释。

我不知道什么是问题,我怎么解决这个问题。

更新:

我将import router from 'routes';更改为import router from './routes',所有措辞都很好!

1 个答案:

答案 0 :(得分:4)

您已完成所有设置,但需要router-view

像这样添加:

<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> 

匹配的路线在router-view

中呈现

修改

路由对象的component属性应该是组件本身,但是你传递一个字符串

所以这样做:

    import VueRoute from 'vue-router';

import Home from './components/Home'
import About from './components/About')

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

export default new VueRoute({
    routes
});