nuxt3数据改变禁止useFetch自动刷新发生请求

搜索是网站中常见的必要功能之一,通过搜索关键词可以快速检索出所需要的内容文章。

在前端开发中关键字的输入通常为input内输入,但在基于nuxt3框架中发现只要输入input数据useFetch就会马上去后台请求数据。

但实际情况却是需要我们输入关键词后,点击搜索按钮再进行数据的检索操作。

那么再nuxt3中要如何实现改变请求数据,不自动刷新请求数据呢?

一、JSON.parse和JSON.stringify的巧用(不推荐)

const param1 = reactive({'test':1})
const { data, pending, error, refresh } = await useFetch('请求接口',{
query: JSON.parse(JSON.stringify(param1))
})

    该方式的使用其实就是利用了数据的深拷贝原理,当input改变test值时,请求数据不会收到影响。

二、useFetch参数watch的设置

watch:监视一组响应式源,并在它们更改时自动刷新获取结果。默认情况下,会监视fetch选项和URL。通过使用watch: false,您可以完全忽略响应式源。结合immediate: false,这允许完全手动的useFetch。

const param1 = reactive({'test':1})
const { data, pending, error, refresh } = await useFetch('请求接口',{
watch: false,
query: param1
})

useFetch的watch默认状态为true及开启响应式监听,只需要修改为false关闭即可。

六月初字帖坊小程序 你想要的字帖模板及工具,这里都有!