首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue路由器工作效率

Vue路由器工作效率
EN

Stack Overflow用户
提问于 2017-05-19 19:10:43
回答 2查看 483关注 0票数 2

我花了一整天的时间试图找出是什么让这个例子失败了:

代码语言:javascript
复制
Vue.use(VueRouter);

var PlayerDetail =  {
  template: '<div>FOO</div>'
};
var PlayerList =  {
  template: '<div>BAR</div>'
};

var routes = [{
  path: '/player',
  component: PlayerList
}, { 
  path: '/detail',
  component: PlayerDetail
}];

var appRouter = new VueRouter({
  routes
});

var appVm = new Vue({
  appRouter
}).$mount('#app');
代码语言:javascript
复制
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<div id="app">
  <h1>Hello App!</h1>
  <p>
    <router-link to="/player">foo</router-link>
    <router-link to="/detail">bar</router-link>
  </p>
  <router-view></router-view>
</div>

如果它和这个一模一样的话:

代码语言:javascript
复制
Vue.use(VueRouter);

var Foo = {
  template: '<div>FOO</div>'
};
var Bar = {
  template: '<div>BAR</div>'
};

var routes = [{
  path: '/foo',
  component: Foo
}, {
  path: '/bar',
  component: Bar
}];

var router = new VueRouter({
  routes
});

var appVm = new Vue({
  router
}).$mount('#app');
代码语言:javascript
复制
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<div id="app">
  <h1>Hello App!</h1>
  <p>
    <router-link to="/foo">foo</router-link>
    <router-link to="/bar">bar</router-link>
  </p>
  <router-view></router-view>
</div>

正如您所看到的,这两个示例实际上都是相同的代码,但在第一个示例中,我得到了TypeError:路由器呈现时没有定义路由。

还有人看到我在这里遗漏了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-19 19:22:36

您正在传递Vue构造函数{ appRouter },它是{ appRouter: appRouter }的缩写。Vue构造函数期望对象具有router属性,而不是appRouter属性。

如果要使用object属性速记传递路由器对象router,则需要准确命名它:

代码语言:javascript
复制
Vue.use(VueRouter);

var PlayerDetail =  {
  template: '<div>FOO</div>'
};
var PlayerList =  {
  template: '<div>BAR</div>'
};

var routes = [{
  path: '/player',
  component: PlayerList
}, { 
  path: '/detail',
  component: PlayerDetail
}];

var router = new VueRouter({
  routes
});

var appVm = new Vue({
  router
}).$mount('#app');
代码语言:javascript
复制
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<div id="app">
  <h1>Hello App!</h1>
  <p>
    <router-link to="/player">foo</router-link>
    <router-link to="/detail">bar</router-link>
  </p>
  <router-view></router-view>
</div>

票数 1
EN

Stack Overflow用户

发布于 2017-05-19 19:21:11

我认为路径和组件组合是不正确的。

代码语言:javascript
复制
var routes = [{
  path: '/player',
  component: PlayerDetail
}, { 
  path: '/detail',
  component: PlayerList
}];

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44077428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档