0

我有一个sidebar:

Home User List

现在我点击List,然后router是这样工作的:

this.$router.push('/index/list')

这样的话List组件就会被渲染进 <router-view> ,我现在处于List页面,我想再点击一次菜单中的 List tab,然后刷新List页面的数据,但是因为我当前已经处于List组件了,好像不会重新渲染页面,有没有什么好办法实现?
PS:我是在created()中获取数据的。
PPS:想到一个办法就是监听当前路由,如果路由没有变化就刷新页面,但是这样相当于按F5,刷新整个页面,太丑了。我只想重新渲染组件的数据。

3个回答

0

你都提到了“数据”,那答案就出来了。想重新渲染,改变数据就行了。

0

你每次点击list的时候触发获取数据重新不就行了,spa里刷新页面是很愚蠢的做法,因为spa的优势就是不用刷新嘛

0

如果数据没有变化,为什么要刷新呢

如果是要重新请求数据,为何不将created进行的操作提成方法放在methods,在tab的点击事件中再调用呢
如果是要在相同路由下进行刷新,可以尝试

router.go({
  path: '/List',
  force: true
})

撰写答案