在 Nuxt 框架里提供了一个 useFetch,它可以看成是 $fetch 外加 useAsyncData 的组合。
在项目里我们把这个 useAsyncData 换成一个 useFetch,然后可以直接给它提供一个要请求的地址就行了,不需要再使用这个 $fetch 了,在 useFetch 的内部会使用这个 $fetch。
这个要请求的地址可以是字符串,也可以用一个函数返回,因为我们要请求的这个地址里使用了 Vue 的反应式的数据,所以需要用一个函数返回要请求的地址,不然这个 page 的值发生变化以后,执行 refresh 重新请求数据的时候,得到的仍然是 page 的值没有变化之前的数据。
在浏览器预览一下,现在内容列表页面仍然会显示一组内容列表项目,点击下一页,可以获取到下一页的内容项目。
除了这个 useFetch,Nuxt 还提供了一个 useLazyFetch,它也是 $fetch 还有 useAsyncData 的组合,只不过它相当于是在使用 useAsyncData 的时候,把 lazy 设置成了 true。