javascript - Vue 生命周期钩子竞争条件
问题描述
我有一个关于 Vue 生命周期钩子的问题。我有一些我想在挂钩中首先调用的方法,但是之前调用了另一种方法。
所需的方法是loadData()
从beforeMount
. 此方法负责 API 请求。但是,它在方法之后调用getIndex
。
首先调用的方法是getIndex
,我希望它最后调用:
我的文件.vue
<b-form>
<app-select
labelName="Name"
fieldType="Type"
:val="getIndex('M','Q',null,null)">
</app-select>
</b-form>
我试图从 打电话loadData()
,mounted()
但beforeMounted()
每次都是第二个。有人知道答案吗?谢谢
解决方案
解决此问题的一种简单方法是使用v-if
延迟渲染<app-select>
直到数据准备好:
<app-select v-if="loadedData" ...
当钩子完成加载时,将填充Where loadedData
is或任何数据属性。this.loadedData
在<app-select>
数据准备好之前不会开始渲染。这本质上类似于手表的概念,但在模板中。
推荐阅读
- python - ValueError:matmul 尝试将 sklearn 的线性回归器拟合到 pandas 数据帧实例时
- node.js - 从 S3 读取 ZIP 存档,并将未压缩版本写入新存储桶
- vue.js - 如何从 vue 中的特定 getter 中检索数据?
- python - 带有字典默认值的 typing.NamedTuple
- node.js - 部署“react-admin”应用程序时,Heroku 服务器因“JavaScript 堆内存不足”而崩溃
- c# - 将 C# 对象转换为 IOpenApiAny
- jsf - “主题”必须以 ';' 结尾 分隔符
- iot - 为什么 MQTT 和 CoAP 的有效载荷大小不同?
- flutter - Flutter StatefulWidget 导致多个 HTTP 重新请求
- java - 使用 simpledateformat 解析 6 位毫秒的字符串日期