我在路由器链接方面遇到一些问题,我有以下问题:
Routes.js:
import Homepage from './components/homepage/Homepage'
import About from './components/About'
export default{
mode: 'history',
routes: [
{
path: '/',
name: 'Home',
component: Homepage
},
{
path: '/about',
component: About
}
]
};
App.js
import Vue from 'vue'
import VueRouter from 'vue-router';
import Routes from './routes';
import Buefy from 'buefy';
import Header from './components/header/Header'
import './plugins/element.js';
import '@mdi/font/css/materialdesignicons.css';
Vue.use(Buefy, {});
Vue.use(VueRouter);
new Vue({
el: '#app',
router: new VueRouter(Routes)
})
new Vue({
render: h => h(Header),
}).$mount('#header')
welcome.blade.php
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>title</title>
</head>
<body>
<div id="header"></div>
<div id="app">
<router-view></router-view>
</div>
<script src="/js/app.js"></script>
</body>
</html>
Header.vue
<template>
<b-navbar>
<template slot="brand">
<b-navbar-item tag="router-link" to="/">
<img
src="../../../assets/images/logo.png"
alt="elculatín, tu website de tiro con arco de referencia"
>
</b-navbar-item>
</template>
<template slot="start">
<router-link>
Inicio
</router-link>
...
我的问题是,
为什么router-link不显示任何内容?
当我尝试在标头组件中使用此标签(作为b-navbar-item中的标签或直接作为“
如果我将
我尝试使用:name,:path的不同方法,但没有任何效果。
我真的很感谢一些建议。
谢谢!
答案 0 :(得分:0)
在您的Routes.js文件中。
import Vue from "vue";
import Router from "vue-router";
Vue.use(Router);
export default new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'Home',
component: Homepage
},
{
path: '/about',
component: About
}
]
})
然后在您的app.js文件中:
import router from './router'
router.beforeEach((to, from, next) => {
document.title = to.meta.title || "Cat";
next();
});
new Vue({
router,
render: h => h(Header)
}).$mount('#app')
Header.vue
<template slot="start">
<b-navbar-item tag="router-link" :to="{ name: 'about' }">About</b-navbar-item>
</template>
答案 1 :(得分:0)
感谢Yogesh的快速响应,但仍然失败,我在应用程序方面有一些不同:
import Vue from 'vue'
import VueRouter from 'vue-router';
import Routes from './routes';
import Buefy from 'buefy';
import Header from './components/header/Header'
import './plugins/element.js';
import '@mdi/font/css/materialdesignicons.css';
Vue.use(Buefy, {});
Vue.use(VueRouter);
Routes.beforeEach((to, from, next) => {
document.title = to.meta.title || "Cat";
next();
})
new Vue({
el: '#app',
Routes
})
new Vue({
render: h => h(Header),
Routes
}).$mount('#header')
我也尝试过使用您的版本,结果相同:(
我不知道为什么不起作用,只是组件“ Header”内的导航栏,我也试图在“ app”的其他组件内添加router-link,结果相同。
答案 2 :(得分:0)
一个更新,很抱歉,我没有检查检查器,我有这个:
app.js:84435 TypeError: Cannot read property 'resolve' of undefined
at Proxy.render (app.js:80670)
at VueComponent.Vue._render (app.js:86089)
at VueComponent.updateComponent (app.js:86605)
at Watcher.get (app.js:87016)
at new Watcher (app.js:87005)
at mountComponent (app.js:86612)
at VueComponent../node_modules/vue/dist/vue.common.dev.js.Vue.$mount (app.js:91582)
at VueComponent../node_modules/vue/dist/vue.common.dev.js.Vue.$mount (app.js:94482)
at init (app.js:85663)
at createComponent (app.js:88511)
答案 3 :(得分:0)
我已经解决了,创建了一个“父亲”组件App.vue:
<template>
<div id="app">
<header-nav/>
<div id="content">
<router-view></router-view>
</div>
</div>
</template>
<script>
import Header from "./header/Header"
export default {
name: 'App',
components: {
"header-nav": Header
}
}
</script>
welcome.blade.php正文:
<body>
<div id="app">
</div>
<script src="/js/app.js"></script>
</body>
routes.js:
import Homepage from './components/homepage/Homepage';
import About from './components/About';
import Vue from 'vue';
import VueRouter from 'vue-router';
Vue.use(VueRouter);
export default new VueRouter({
mode: 'history',
routes: [
{
path: '/',
name: 'Home',
component: Homepage
},
{
path: '/about',
component: About
}
]
});
Apps.js:
import Vue from 'vue';
import routes from './routes';
import Buefy from 'buefy';
import App from './components/App';
import './plugins/element.js';
import '@mdi/font/css/materialdesignicons.css';
require('./bootstrap');
Vue.use(Buefy, {});
new Vue({
router: routes,
render: h => h(App),
}).$mount('#app')
我认为旧结构与vue-router不兼容。