通过 100 多个技巧学习 Nuxt!

useRequestFetch

使用 useRequestFetch 组合式函数转发服务器端获取请求的请求上下文和标头。

您可以使用 useRequestFetch 在进行服务器端获取请求时转发请求上下文和标头。

在进行客户端获取请求时,浏览器会自动发送必要的标头。但是,在服务器端渲染期间发出请求时,因为该请求是在服务器上发出的,我们需要手动转发标头。

不打算转发的标头将不会包含在请求中。这些标头包括,例如: transfer-encodingconnectionkeep-aliveupgradeexpecthostaccept
useFetch 组合式函数在底层使用 useRequestFetch 来自动转发请求上下文和标头。
<script setup lang="ts">
  // This will forward the user's headers to the `/api/foo` event handler
  // Result: { cookies: { foo: 'bar' } }
  const requestFetch = useRequestFetch()
  const { data: forwarded } = await useAsyncData(() => requestFetch('/api/cookies'))
  
  // This will NOT forward anything
  // Result: { cookies: {} }
  const { data: notForwarded } = await useAsyncData(() => $fetch('/api/cookies')) 
</script>
在客户端导航期间,在浏览器中,useRequestFetch 的行为将与普通的 $fetch 相同。