Browse Source

下拉刷新

template
liruiqiang 2 months ago
parent
commit
9ab9d43e22
  1. 8
      src/components/XtxGuess.vue
  2. 29
      src/pages/index/index.vue

8
src/components/XtxGuess.vue

@ -61,6 +61,13 @@ const getHomeGoodsGuessLikeData = async () => {
}
}
//
const resetData = () => {
pageParams.page = 1
guessList.value = []
finish.value = false
}
//
onMounted(() => {
getHomeGoodsGuessLikeData()
@ -68,6 +75,7 @@ onMounted(() => {
//
defineExpose({
resetData,
getMore: getHomeGoodsGuessLikeData,
})
</script>

29
src/pages/index/index.vue

@ -2,7 +2,14 @@
<view class="viewport">
<!-- 自定义导航栏 -->
<CustomNavbar />
<scroll-view @scrolltolower="onScrolltolower" class="scroll-view" scroll-y>
<scroll-view
refresher-enabled
@refresherrefresh="onRefresherrefresh"
:refresher-triggered="isTriggered"
@scrolltolower="onScrolltolower"
class="scroll-view"
scroll-y
>
<PageSkeleton v-if="isLoading" />
<!-- 自定义轮播图 -->
<XtxSwiper :list="bannerList" />
@ -20,6 +27,7 @@
import CustomNavbar from './components/CustomNavbar.vue'
import CategoryPanel from './components/CategoryPanel.vue'
import HotPanel from './components/HotPanel.vue'
import PageSkeleton from './components/PageSkeleton.vue'
import { ref } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { getHomeBannerAPI, getHomeCategoryAPI, getHomeHotAPI } from '@/services/home'
@ -64,6 +72,25 @@ onLoad(async () => {
await Promise.all([getHomeBannerData(), getHomeCategoryData(), getHomeHotData()])
isLoading.value = false
})
//
const isTriggered = ref(false)
//
const onRefresherrefresh = async () => {
//
isTriggered.value = true
//
guessRef.value?.resetData()
await Promise.all([
getHomeBannerData(),
getHomeCategoryData(),
getHomeHotData(),
guessRef.value?.getMore(),
])
//
isTriggered.value = false
}
</script>
<style lang="scss">

Loading…
Cancel
Save