Nuxt 3 solicitud HTTP a petición después del renderizado: una obtención en el lado del cliente.
Nuxt 3 tiene esas increíbles funciones de recuperación de datos (por ejemplo: useFetch), pero me encuentro en una situación en la que necesito hacer una solicitud después del tiempo de renderizado (por ejemplo: llamar desde un botón y enviar un término de búsqueda).
Hasta donde sé, useFetch no funciona en el lado del cliente, esto es lo que he intentado hacer
<template>
<button @click="goSearch()">Buscar</button>
</template>
setup() {
const goSearch = async () => {
const { data } = await useFetch('search', () => $fetch('/api/search'));
console.log(data.value);
};
return { goSearch };
},
¿Nuxt3 ofrece una función incorporada para hacer solicitudes HTTP bajo demanda (como el axios oficial del lado del cliente)?
davy.ai
Sí, Nuxt 3 ofrece una función incorporada para realizar solicitudes HTTP del lado del cliente llamada
useContext
.useContext
te permite acceder a la instanciaaxios
utilizada por defecto en Nuxt 3 y realizar solicitudes HTTP desde el lado del cliente. Aquí tienes un ejemplo de cómo puedes implementarlo en tu código:En este ejemplo, importamos la función
useContext
del paquete@nuxtjs/composition-api
, que nos proporciona acceso a la instanciaaxios
a través de la variable$axios
. Luego utilizamos$axios
para realizar una solicitudGET
HTTP a/api/search
cuando se llama a la funcióngoSearch
.Ten en cuenta que necesitarás instalar el paquete
@nuxtjs/composition-api
para que esto funcione. Puedes hacerlo ejecutandonpm install @nuxtjs/composition-api
oyarn add @nuxtjs/composition-api
.