【问题标题】:location.reload with VueJS使用 VueJS 重新加载 location.reload
【发布时间】:2018-03-03 06:10:20
【问题描述】:

有没有办法刷新当前路由器视图?像 location.reload() 这样的东西。但不在整个页面上,只在当前路径名视图中。

我搜索了很多关于它的东西,我试着做

this.$route.router.go

/\这会重新加载所有页面,不好。

我找到了一个非常好的可能的解决方案Here。但是当我尝试它时:

vm.$forceupdate

Console.log (vm.$forceUpdate)

ƒ () { var vm = 这个; 如果(vm._watcher){ vm._watcher.update(); } }

是的! 'vm' 已经是一个全局变量。 console.log (vm)

Vue$3 {_uid: 0, _isVue: true, $options: {…}, _renderProxy: 代理, _self: Vue$3, …}

没有这个函数发生。 有人知道发生了什么或其他方式吗?

谢谢!!

【问题讨论】:

  • 不完全确定您要做什么,但它是 forceUpdate 而不是 forceupdate。要调用它,您需要这样做 vm.$forceUpdate()
  • 你为什么要这样做?
  • @thanksd 我编辑了我的问题。实际上这个函数没有任何反应。
  • 您说要重新加载页面,但不是所有页面。那是模糊的。您需要更具体地说明您期望发生的事情以及未按预期工作的事情。
  • 更改组件使用的数据,它会相应地更新。如果您希望其他组件进行更改,请查看通过事件或 Vuex 之类的跨组件通信。

标签: javascript vue.js vuejs2 vue-component vue-router


【解决方案1】:

datacomputed 中的所有内容都是反应性的,并将更新视图的变化。因此,您应该将您的 JSON 存储在 data 中(或者如果它在商店中使用 - 使用 mapState)。如果您需要更具体的答案 - 请提供示例。

【讨论】:

  • 嗨,Artur.js,是的!我知道。我真正的问题是因为我通过 Rest API 制作了 Axios.Get。当 API 获得一个新值时,视图不会更新,因为我必须做一个新的 Axios.Get。这就是为什么我想在单击菜单上的视图时刷新视图。
  • 你怎么知道后端的数据发生了变化?如果您有套接字 - 请在 msg 上再次拨打电话。您也可能想使用一个(例如sockets.io)否则您可以设置超时以每n秒检索一次数据等。
猜你喜欢
  • 1970-01-01
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
  • 2017-03-20
相关资源
最近更新 更多