【发布时间】:2019-04-17 19:00:34
【问题描述】:
在导航到我拥有的一些路线之前,试图找出获取一些数据的最佳方法。
我的路线是:
let routes = [
{
path: '/',
component: require('./views/Home.vue')
},
{
path: '/messages',
component: require('./views/Messages.vue'),
},
{
path: '/posts',
component: require('./views/Post.vue'),
},
{
path: '/login',
component: require('./views/Login.vue')
},
{
path: '/dashboard',
component: require('./views/Dashboard.vue'),
}
];
对于 /messages、/posts 和 /dashboard,我想获取一些数据,并在此过程中显示一个微调器。
Vue-router 文档建议使用 beforeRouteEnter,Fetching Before Navigation
beforeRouteEnter (to, from, next) {
getPost(to.params.id, (err, post) => {
next(vm => vm.setData(err, post))
})
}
但我的问题是,我必须在我所有的三个视图组件中实现这个获取逻辑吗? 由于获取的是相同的数据,我不想在每个组件中重复逻辑。
beforeRouteEnter 没有在我有这个<router-view></router-view> 的根组件中调用,否则我觉得这将是拥有这个逻辑的最佳位置。
我真的是 vue 新手,这对我来说真的很难破解。
【问题讨论】:
标签: vue.js vue-component vue-router