我的应用的router-view
内容始终保持为空(<!---->
),即使路由本身运行正常,并且整个应用中都能正确呈现模板。
(注意:即使只有import Vue from 'vue';
,我也会使用带有编译支持的独立版Vue.js。正确的导入会被webpack取代。)
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)
});
body
#app-container
@Component({
template: require('./app.template.pug'),
components: {
'app-header': HeaderComponent,
...
}
})
export class AppComponent extends Vue {
}
.app
app-header
.app-body
app-sidebar
main.app-content
app-breadcrumb(:list='list')
.container-fluid
router-view
app-aside
app-footer
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
}
]
}
]
});
答案 0 :(得分:4)
好吧,我自己弄清楚了。好像vue-router
中的每个路径定义都需要一个组件。所以它正确地路由到DashboardComponent
,但没有任何东西呈现在它的父母身上。我为父母提供了一个简单的虚拟组件,只有一个router-view
的模板,它开始工作。
答案 1 :(得分:2)
是的.. Home路线没有组件...... 你可以这样做:
routes: [
{
path: '/',
redirect: '/dashboard',
name: 'Home',
component: {
template: '<router-view/>',
},
children: [
{
path: 'dashboard',
name: 'Dashboard',
component: DashboardComponent
}
]
}
]
答案 2 :(得分:0)
其他方式 - 只需将模板添加到父级
$('.slider').slick({
dots: false,
infinite: true,
speed: 500,
arrows: false,
lazyLoad: 'ondemand',
autoplay: true,
autoplaySpeed: 4000
});