drissionpage使用等待页面加载完毕点击
时间: 2024-09-26 16:04:34 浏览: 135
基于DrissionPage的搜索引擎优化程序
DrissionPage是Ant Design Vue (ADVue)框架中的一种组件,它用于模拟网页的行为,比如展示一个加载页面的过程。当你需要在一个操作之前等待某个页面完全加载完成,可以使用`drissionpage`配合`asyncData`或`mounted`生命周期钩子。
例如,在`asyncData`函数中,你可以设置一个Promise,当页面的数据请求成功并解析后返回数据,同时设置一个标志表示是否加载完成:
```javascript
export default {
async asyncData({ $axios, route }) {
const response = await $axios.get('/api/data');
// 检查数据是否已经加载完毕,比如检查响应状态码或内容长度
if (response.status === 200 && response.data.length > 0) {
return { loading: false, data: response.data };
} else {
return { loading: true }; // 页面还在加载
}
},
mounted() {
// 在mounted阶段也可以监听DOM加载完成,如DOMContentLoaded事件
document.addEventListener('DOMContentLoaded', () => {
this.$refs.pageLoading.hide(); // 当页面加载完隐藏加载提示
});
},
}
```
然后在模板中,你可以这样使用`<drissionpage>`标签:
```html
<template>
<drissionpage ref="pageLoading" :loading="loading">
<div v-if="!loading">这里是已加载的内容</div>
<div v-else>Loading...</div>
</drissionpage>
</template>
```
这样,当页面数据加载完成后,用户就可以点击非加载区域了。
阅读全文