Vue路由器并从商店接收数据

Posted

技术标签:

【中文标题】Vue路由器并从商店接收数据【英文标题】:Vue router and recieving data from store 【发布时间】:2019-03-01 09:25:04 【问题描述】:

我需要你的帮助。有一个 Vue 应用程序,我在其中使用 vuex 商店和 vue-router。问题是我从 API 调用中获取存储数据,如果我从其他地方导航到 blabla/edit-profile 页面,则用户数据已经在存储中并且在组件中我可以使用 getter 接收到的这些数据。 但是,如果我在 create 或 mount 方法中重新加载页面获取器不包含任何数据。但是如果查看 Vuex 开发工具,我可以看到获取的数据。 如何解决此问题?

【问题讨论】:

您是否确保 API 调用在页面加载之前完成?听起来它可能在 API 调用完成之前创建/挂载页面,所以还没有任何数据 - 然后当你查看它已加载的开发工具时。可能很容易出错,但这只是我根据您的描述的猜测。 是第一页中的 API 调用(即/blabla)还是在 App.vue 中(或者你有 <router-view> 组件的任何地方?) 也许你可以去掉createdmounted钩子里面的getter,只在模板里面使用它们? 问题是 API 调用在页面创建/挂载时还没有完成。所以我需要以某种方式加载它们。或者在页面创建/挂载后加载数据。 首页有调用。实际上,该调用已添加到 App.vue。所以通常它们是在每一个上制作的。加载。 【参考方案1】:

您可以尝试在计算属性中使用它们,而不是在已安装或创建的属性中使用 getter。这样,它将确保在实际需要时加载您的数据https://vuejs.org/v2/guide/computed.html

您也可以尝试检查警告https://vuejs.org/v2/guide/list.html#Caveats。数据在获取后可能对 Vuejs 加载不友好。

【讨论】:

谢谢!我会尝试这种方法

以上是关于Vue路由器并从商店接收数据的主要内容,如果未能解决你的问题,请参考以下文章

Java:通过 TCP 发送/接收数据并从 UDP 接收图像

vue使用props在组件中传输和接收参数

获取发送表单数据并从 php 接收它

Vue父子组件间通信(数据传递)

通过 POST (ajax) 发送 JSON 数据并从 Controller (MVC) 接收 json 响应

路由动态接收参数