javascript - Vue.js中数据变化时如何去除过渡效果?
问题描述
在 Vue.js 2.x 上,我有一个组件从服务器获取数据,如下所示。
<template>
...
<a href="..." v-if="data.status !== 'blind'">Link</a>
...
</template>
<script>
export default {
...
data: {
return() {
data: {}
}
};
...
async created() {
const loadedData = await this.$axios.get(`server-url`);
this.data = loadedData.data;
}
</script>
因此,这可以很好地在data.status
“盲”时不渲染锚标记,但即使使用await
.
v-if
axios数据加载后有什么方法可以渲染吗?
解决方案
请注意,您的if
状况有误。它应该是:
v-if="data.status !== 'blind'"
无论如何,在我看来,处理 ajax 调用的最佳方式是使用标志。像这样的东西:
<template>
...
<a href="..." v-if="!loading && data.status !== 'blind'">Link</a>
...
</template>
<script>
export default {
...
data: {
return() {
loading: false,
data: {}
}
};
...
async created() {
this.loading = true;
const loadedData = await this.$axios.get(`server-url`);
this.loading = false;
this.data = loadedData.data;
}
</script>
推荐阅读
- javascript - Invisible captcha does not work in Chrome Lite mode
- visual-studio - Is there a way to suppress error messages for specific C# types in Visual Studio 2019?
- java - form-data file upload + array of object
- antd - 如何从 antd modal 隐藏顶部的 X 按钮
- reactjs - 从数据库获取数据时的useEffect无限循环
- powershell - 如何在 ForEach-Object Parallel 中设置计数器 - PowerShell 7
- javascript - 重构分支以在包装组件之上呈现
- javascript - 表情符号列表命令 Discord.js v12
- python - 调用 pytest 函数作为子进程
- sql - SQL:有没有办法阻止两个相同的行存在于一个表中