由于mescroll在分页切换时自动触发机制, 会默认调用下拉刷新动画加载数据, 如何解决首次下拉刷新动画?
思路: 通过禁用 mescrollTrigger() 的自动触发,然后手动控制数据刷新,可以彻底避免首次切换时的下拉刷新的动画问题。
由于首页面是默认加载数据的,看如何处理:
methods: {
// 重写 mescrollTrigger 方法,首页面默认加载数据
mescrollTrigger() {
// 默认页面,需要立即加载数据
if (this.i === 0 && !this.hasInitialized) {
// 手动加载数据
this.manualLoadData();
}
},
// 手动加载数据
manualLoadData() {
console.log("手动加载数据");
this.hasInitialized = true;
....调用接口
}
}
其他分页组件,只需要考虑首次切换时手动加载.
watch: {
// 监听index变化,当切换到当前tab时手动控制数据加载
index(newVal) {
if (newVal === this.i) {
// 如果是首次加载,手动触发数据加载
if (!this.hasInitialized) {
// 手动调用接口
this.manualLoadData();
}
}
},
methods: {
// 重写 mescrollTrigger 方法,禁用自动触发
mescrollTrigger() {
// 不执行任何操作,禁用自动触发
console.log("mescrollTrigger 被禁用,使用手动控制");
},
// 手动加载数据
manualLoadData() {
this.hasInitialized = true;
....调用接口
}
}