知乎热榜 下拉刷新

This commit is contained in:
shikong 2024-10-17 15:36:42 +08:00
parent 9e30d48765
commit 13ed2cbe11
Signed by: Shikong
GPG Key ID: BD85FF18B373C341

View File

@ -1,13 +1,17 @@
<script setup> <script setup>
import {onLoad} from "@dcloudio/uni-app"; import {onReady} from "@dcloudio/uni-app";
import {reactive} from "vue"; import {reactive} from "vue";
const ctx = reactive({ const ctx = reactive({
data: [] data: [],
refresh: {
triggered: false
}
}) })
function fetchHotList() { function fetchHotList() {
ctx.refresh.triggered = true
uni.request({ uni.request({
url: "https://api.zhihu.com/topstory/hot-list?limit=10&reverse_order=0" url: "https://api.zhihu.com/topstory/hot-list?limit=10&reverse_order=0"
}).then(resp => { }).then(resp => {
@ -15,10 +19,12 @@ function fetchHotList() {
let res = resp.data || {} let res = resp.data || {}
let data = res.data || [] let data = res.data || []
ctx.data = data || [] ctx.data = data || []
}).finally(() => {
ctx.refresh.triggered = false
}) })
} }
onLoad(() => { onReady(() => {
fetchHotList() fetchHotList()
}) })
</script> </script>
@ -26,6 +32,7 @@ onLoad(() => {
<template> <template>
<view> <view>
<uni-section title="知乎热榜" type="line"> <uni-section title="知乎热榜" type="line">
<scroll-view refresher-enabled :refresher-triggered="ctx.refresh.triggered" @refresherrefresh="fetchHotList">
<uni-list> <uni-list>
<uni-list-item v-for="item in ctx.data" :key="item.target.id" direction="column"> <uni-list-item v-for="item in ctx.data" :key="item.target.id" direction="column">
<template #header> <template #header>
@ -41,6 +48,7 @@ onLoad(() => {
</template> </template>
</uni-list-item> </uni-list-item>
</uni-list> </uni-list>
</scroll-view>
</uni-section> </uni-section>
</view> </view>