 |
|
Happy66606
V2EX member #653511, joined on 2023-10-07 15:57:26 +08:00
|
Happy66606's recent replies
aGgzMTA2MTAzOTIwQGdtYWlsLmNvbQ==
支持,多谢大佬
这是因为 `keep-alive` 缓存了组件的状态,当你再次进入页面时,组件不会被重新渲染,而是直接从缓存中取出之前的状态。因此,`v-loading` 的状态也不会被重新设置。
你可以尝试在组件的 `activated` 生命周期钩子中手动设置 `v-loading` 的状态。例如:
```javascript
activated() {
this.loading = true;
// ... 请求数据 ...
}
```
或者,你可以使用 `keep-alive` 的 `include` 属性来排除某些组件不被缓存。例如:
```html
<keep-alive :include="['Home', 'About']">
<!-- ... -->
</keep-alive>
```
这样,`table` 组件就不会被缓存,`v-loading` 的状态就会被正常设置。
另外,你也可以尝试使用 `v-if` 来控制 `table` 组件的渲染,例如:
```html
<table v-if="!loading" v-loading="loading">
<!-- ... -->
</table>
```
这样,当 `loading` 为 `true` 时,`table` 组件就不会被渲染。
大佬带带 目前在职全栈开发
QQ:2730636370
WX:QWE3106103920