路由器视图内容未呈现

新手上路,请多包涵

我的应用程序的 router-view 内容始终保持为空( <!----> ),即使路由本身完美运行并且模板在整个应用程序中正确呈现。

(注意:即使只有一个 import Vue from 'vue'; ,我使用的是具有编译支持的独立版本的 Vue.js。正确的导入被 webpack 取代。)

主.ts

 import Vue from 'vue';
import Router from './services/router';
import { AppComponent } from './components/';

export default new Vue({
  el: '#app-container',
  router: Router,
  render: (context) => context(AppComponent)
});

main.template.pug(摘录)

 body
  #app-container

app.ts(摘录)

 @Component({
  template: require('./app.template.pug'),
  components: {
    'app-header': HeaderComponent,
    ...
  }
})
export class AppComponent extends Vue {

}

应用程序模板.pug

 .app
  app-header
  .app-body
    app-sidebar
    main.app-content
      app-breadcrumb(:list='list')
      .container-fluid
        router-view
    app-aside
  app-footer

服务/路由器/index.ts(摘录)

 import Router from 'vue-router';
import { DashboardComponent } from '../../components/pages/dashboard';

Vue.use(Router);

export default new Router({
  mode: 'history',
  linkActiveClass: 'open active',
  routes: [
    {
      path: '/',
      redirect: '/dashboard',
      name: 'Home',
      children: [
        {
          path: 'dashboard',
          name: 'Dashboard',
          component: DashboardComponent
        }
      ]
    }
  ]
});

原文由 maelgrove 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 297
2 个回答

好吧,我自己想通了。似乎 vue-router 中的每个路由定义都需要一个组件。所以它正确地路由到 DashboardComponent ,但没有任何东西可以在它的父级上呈现。我为父级提供了一个简单的虚拟组件,只有一个 router-view 作为它的模板,它开始工作了。

原文由 maelgrove 发布,翻译遵循 CC BY-SA 3.0 许可协议

是的.. Home 路线没有组件……你可以简单地做:

 routes: [
    {
      path: '/',
      redirect: '/dashboard',
      name: 'Home',
      component: {
          template: '<router-view/>',
      },
      children: [
        {
          path: 'dashboard',
          name: 'Dashboard',
          component: DashboardComponent
        }
      ]
    }
  ]

原文由 Lucas Katayama 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题