如何在Vue中重新渲染组件

时间:2017-09-14 04:16:21

标签: javascript ecmascript-6 vuejs2 vue-router

我有一个侧边栏包含三个标签:

Home Users List

当我点击“用户”标签时,路由器将按以下方式转换:

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

然后Users组件将呈现在:

<router-view></router-view>

现在我想再次单击“用户”选项卡以获取最新数据。但是组件不会再次重新渲染,并且数据不会刷新。

我还有其他方法可以解决它而不是F5吗? 我希望它适用于所有组件。 PS:我在生命周期钩子中创建数据()。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我通过观察路由器中的组件更改来“重新加载”来解决:https://router.vuejs.org/en/essentials/dynamic-matching.html

  watch: {
      '$route': 'fetchData'  // call the function which update data
  },

答案 1 :(得分:-1)

据我所知,vuejs路由器在连接相同路由时不支持刷新组件。但我正在使用location.reload()给出一个简单的方法,如下所示

this.$router.push('index/users')
location.reload()