【发布时间】:2018-07-13 06:05:43
【问题描述】:
我有一个带有提交按钮的登录表单。只要您按下按钮,就会发送 axios api 请求。在此请求期间,按钮应该被禁用,显示一个微调器。现在,我设法使用 vuex 相应地更新了状态。现在看起来像这样:
这里发生了什么?从normal -> loading 状态的转换工作得很好。但是,一旦 api 请求完成,从 loading -> normal 转换回来会在渲染引擎(不确定)重置布局并重新居中标签之前将布局弄乱一秒钟左右。
这是我的按钮模板:
<md-button @click.prevent="onBtnLoginClicked"
class="md-raised md-primary"
:disabled="isExecutingLogin">
<span v-if="!isExecutingLogin">
Login
</span>
<span v-else-if="isExecutingLogin">
<md-progress-spinner id="spinner" :md-diameter="20" :md-stroke="3"
md-mode="indeterminate"/>
</span>
</md-button>
知道如何解决这个问题吗?
【问题讨论】:
-
用 CSS 检查器检查元素上的
position,看看它是否改变 -
@Ohgodwhy 在 spinner-span 再次消失之前,两个组件在短时间内可见。
标签: vue.js vuejs2 css-transitions vue-material