【发布时间】:2020-01-13 05:47:07
【问题描述】:
vue-router 运行良好,但 <router-link to="/path">Link</router-link> 元素不会呈现为 <a href="/path">Link</a>,而只是呈现为纯文本 Link。让我给你看我的代码:
index.html
<div id="wrapper">
<!-- Content -->
<router-view></router-view>
</div>
app.js
const Vue = require('vue');
import VueRouter from 'vue-router';
Vue.use(VueRouter);
//routing stuff
import GMap from './components/g-map.vue';
import Home from './components/home.vue';
const router = new VueRouter({
routes: [
{ path: '/', component: Home },
{ path: '/g-map', component: GMap }
]
});
new Vue({
router
}).$mount('#wrapper');
home.vue
<template id="home">
<div>
<!-- some stuff -->
<router-link to="/g-map">Link</router-link>
<a href="#" @click="testVueRoute">Another link</a>
</div>
</template>
<script>
export default {
methods: {
testVueRoute() {
this.$router.push({ path: "g-map" });
}
}
};
g-map.vue
<template id="g-map">
<div>SOME CONTENT FROM G-MAP</div>
</template>
<script>
export default {};
</script>
home 组件在开始时呈现(因为在路由中有一个路径 /),在加载的站点上我可以看到 text“链接”和可点击链接“另一个链接”。该网站的来源如下所示:
<div>
<!-- some stuff -->
Link
<a href="#">Another link</a>
</div>
点击文本“链接”什么都不做,点击“另一个链接”调用成功testVueRoute方法和g-map组件的内容出现。
Vue-route 做得很好,因为 this.$router.push({ path: "g-map" }); 效果很好,但为什么 <router-link to="/path">Link</router-link> 元素没有渲染到 a 标签?
【问题讨论】:
-
网站上呈现的输出是什么? IE。
<router-link>的来源给你什么?此外,尝试使用g-map而不是/g-map,同时将name: 'G-map'(或任何您的组件名称)添加到routes[ ] -
@Bram 在网站上呈现的输出是纯文本
Link(没有任何标签)。从/g-map中删除斜线没有任何改变。 -
您确实为
routes[ ]中的每条路线添加了一个名称? -
是的,我尝试了使用路由名称,但没有效果。
标签: html vuejs2 vue-router