【发布时间】:2016-11-09 06:18:17
【问题描述】:
我是 vuejs 的新手,在使用它时有一些问题。 我创建了一个根视图,其中有 2 个子组件,rootview.vue 文件如下所示:
<template>
<div id="rootView">
<calendar-top-view></calendar-top-view>
<calendar-bottom-view></calendar-bottom-view>
</div>
</template>
<script>
import calendarTopView from './calendarTopView.vue'
import calendarBottomView from './calendarBottomView.vue'
export default {
components: {
'calendar-top-view': calendarTopView,
'calendar-bottom-view': calendarBottomView
}
}
</script>
在calendar-bottom-view组件中,我需要使用vue-router来帮助切换到子组件:calendarView和agendaView。所以我决定在我的 calendar-bottom-vue 组件中添加 vue-router,代码如下所示:
<template>
<div id='mainRightDiv'>
<div id='calendarToolboxDiv'>
<a v-link='{ path: "/calenarView"}'></a>
<a v-link='{ path: "/agendaView"}'></a>
</div>
<router-view></router-view>
</div>
</template>
<script type="text/javascript">
import Vue from 'vue'
import calendarView from './calendarView.vue'
import agendaView from './agendaView.vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
let App = Vue.extend({})
let router = new VueRouter()
router.map({
'/calendarView': {
component: calendarView
},
'/agendaView': {
component: agendaView
}
})
export default {
ready: function () {
router.go({ path: '/calendarView'})
}
}
</script>
我打算做的是让路由器在组件初始化时先渲染calendarView。但是当我运行这个页面时,我收到了类似
的错误消息'router-view> 只能在支持路由器的应用内使用。'
我查看了vue-router的官方规范,在它的demo代码中发现,在demo app的入口js中使用了vue-router,在任何子组件中都没有发现任何用处。
所以我想知道,如何在我的一个子组件中使用 vue-router 而不是 root?
【问题讨论】:
-
我发现动态组件足以满足我的需要。不需要Vue路由器。但我还是想知道如何使用 vue-router。
标签: vue.js vue-router