Nuxt3项目中问题汇总之刷新页面useFetch无返回解决

 更新时间:2024年03月15日 09:36:38   作者:一颗水晶大白菜  
Nuxt.js是一个基于 Vue.js 的服务端渲染应用框架,这篇文章主要给大家介绍了关于Nuxt3项目中问题汇总之刷新页面useFetch无返回解决办法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

坑有千千万,汇总下目前的解决办法,也因为对框架的不够深入,掌握得有限,大家有更好的,请指教【抱拳】

浏览器刷新的时候页面没有显示数据,接口data无返回。本身nuxt的useFetch在参数不变的情况下,数据是不会重新从后台接口去请求数据的,会直接拿上一次的结果。但是有实时去后台获取数据这样的需求,比如我的关注页面,在其他页面点了关注,每次进这个页面或者刷新都需要去后台重新获取数据,所以我给入参加了一个以时间戳为值的参数key,但是这样导致每次F5刷新页面的时候,都拿不到数据,导致页面没有显示。Suspense不起作用。

const { data } = await useFetch(
 'http://www.baidu.com/xx-list',
 {
   method: 'get',
   key: uuid(),
   headers: {
     Authorization: 'xxx'
   },
   params: {
     page: currentPage.value,
     size: 10
   }
 }
)
console.log('data', data)

刷新的时候打印结果data.value是null

解决1: 加个定时器(不友好)

 <script lang="ts" setup>
	const { data } = await useFetch(
	  'http://www.baidu.com/xx-list',
	  {
	    method: 'get',
	    key: uuid(),
	    headers: {
	      Authorization: 'xxxx'
	    },
	    params: {
	      page: currentPage.value,
	      size: 10
	    }
	  }
	)
	setTimeout(() => {
    	console.log('data', data)
  }, 500);
	
</script>

解决2: 函数方法+await nextTick(),把获取数据接口放在方法里,方法里使用await nextTick(),然后调用方法

<script lang="ts" setup>
import { nextTick } from 'vue'
const feachData = async (key = '') => {
  await nextTick()
  const { data, pending, error, refresh } = await useFetch(
    'http://www.baidu.com/xx-list',
    {
      method: 'get',
      key: uuid(),
      headers: {
        Authorization: 'xxx'
      },
      params: {
        page: currentPage.value,
        size: 10
      }
    }
  )
  console.log('data', data.value)
}
feachData()
<script>

总结 

到此这篇关于Nuxt3项目中刷新页面useFetch无返回解决办法的文章就介绍到这了,更多相关Nuxt3刷新页面useFetch无返回内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 单页面Vue页面刷新出现闪烁问题及解决

    单页面Vue页面刷新出现闪烁问题及解决

    这篇文章主要介绍了单页面Vue页面刷新出现闪烁问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 详解使用vuex进行菜单管理

    详解使用vuex进行菜单管理

    本篇文章主要介绍了详解使用vuex进行菜单管理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Element el-button 按钮组件的使用详解

    Element el-button 按钮组件的使用详解

    这篇文章主要介绍了Element el-button 按钮组件的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Vuex状态机的快速了解与实例应用

    Vuex状态机的快速了解与实例应用

    Vuex是专门为Vuejs应用程序设计的状态管理工具,这篇文章主要给大家介绍了关于Vuex状态机快速了解与实例应用的相关资料,需要的朋友可以参考下
    2021-06-06
  • vue的@change的用法及操作代码

    vue的@change的用法及操作代码

    @change 是 Vue.js 中用于监听表单元素值变化的事件处理器,这篇文章主要介绍了vue的@change的用法,需要的朋友可以参考下
    2023-10-10
  • Vue模板语法v-bind教程示例

    Vue模板语法v-bind教程示例

    这篇文章主要为大家介绍了Vue模板语法v-bind教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • vue-meta实现router动态设置meta标签的方法

    vue-meta实现router动态设置meta标签的方法

    这篇文章主要介绍了vue-meta实现router动态设置meta标签,实现思路非常简单内容包括mata标签的特点和mata标签共有两个属性,分别是http-equiv属性和name属性,本文通过实例代码给大家详细讲解需要的朋友可以参考下
    2022-11-11
  • vue2 拖动排序 vuedraggable组件的实现

    vue2 拖动排序 vuedraggable组件的实现

    这篇文章主要介绍了vue2 拖动排序 vuedraggable组件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Vue项目中ESLint配置超全指南(VScode)

    Vue项目中ESLint配置超全指南(VScode)

    ESLint是一个代码检查工具,用来检查你的代码是否符合指定的规范,下面这篇文章主要给大家介绍了关于Vue项目中ESLint配置(VScode)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 如何通过Vue自带服务器实现Ajax请求跨域(vue-cli)

    如何通过Vue自带服务器实现Ajax请求跨域(vue-cli)

    从A页面访问到B页面,并且要获取到B页面上的数据,而两个页面所在的端口、协议和域名中哪怕有一个不对等,那么这种行为就叫跨域,这篇文章给大家介绍如何通过Vue自带服务器实现Ajax请求跨域(vue-cli),感兴趣的朋友一起看看吧
    2023-10-10

最新评论