【发布时间】:2019-10-28 15:01:17
【问题描述】:
我的 vue 应用程序中有三个组件:
- 首页:(Button 的祖父母)
- 对话框:(Home 的子项/Button 的父项)
- 按钮:(家的孙子)
Home 组件有一个异步方法:
async handleDialogAccept() {
try {
const response = await this.$axios.get('https://jsonplaceholder.typicode.com/todos/');
console.log(response.data);
} catch (err) {
console.log(err);
}
},
它会在Dialog 组件发出“接受”自定义事件时立即执行:
<dialog-confirmation
@accept="handleDialogAccept()"
/>
Dialog 组件有一个子 (Button):
<button-accept
v-on="$listeners"
>
Accept
</button-accept>
在我的buttonAccept.vue 中被导入Dialog 并如上所示使用具有下一个结构:
<template>
<v-btn
color="primary"
@click="handleClick()"
:loading="loading"
:disabled="loading"
>
<slot name="accept"></slot>
</v-btn>
</template>
<script>
export default {
props: ['parentFunction'],
data() {
return {
loading: false,
};
},
methods: {
handleClick() {
this.$emit('accept');
},
},
};
</script>
我想在handleClick 方法中执行接下来的步骤:
- 将
loading设置为true - 发出接受自定义事件
- 等到
handleDialogAccept完成 - 将
loading设置为false
需要等待吗?
【问题讨论】:
标签: javascript vue.js