es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El método “mounted” de Gridsome solo se ejecuta al recargar la página.

Estoy utilizando el método de ciclo de vida montado de Vue para obtener datos. Los datos están almacenados en Algolia. Utilizo la API de búsqueda para conectar y obtenerlos. Los datos solo se cargan cuando actualizo el sitio. No se ejecuta al navegar por la página.

Métodos:

    async fetchInventory(data = {}) {
        try {
            this.isLoading = true;
            const result = await index.search("", {hitsPerPage: 12});

            this.auctions = result.hits;
            this.totalItems = result.nbHits;
            this.totalPages = result.nbPages;
            this.isLoading = false;
        } catch (error) {
            this.isLoading = false;
            console.log(error);
        }
    },

Montado() {
this.fetchInventory();
}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Método del ciclo de vida mounted de Vue para obtener datos

    Cuando se utiliza Vue.js, se puede utilizar el método del ciclo de vida mounted para obtener datos desde una fuente externa como Algolia. En este código de ejemplo, utilizamos la API de búsqueda de Algolia para obtener datos y almacenarlos en la variable auctions del componente.

    Sin embargo, una limitación es que los datos solo se cargan cuando se actualiza el sitio y no se ejecutan en la navegación de las páginas. Esto significa que si el usuario navega fuera de la página y vuelve más tarde, no verá los datos más recientes hasta que actualice la página.

    Para superar esta limitación, puedes considerar el uso de otros métodos del ciclo de vida como beforeRouteEnter o beforeRouteUpdate si estás utilizando Vue Router. Alternativamente, también puedes utilizar otras técnicas como el almacenamiento en caché de datos o el uso de una biblioteca de administración de estado global como Vuex para almacenar datos.

    methods: {
        async fetchInventory(data = {}) {
            try {
                this.isLoading = true;
                const result = await index.search("", {hitsPerPage: 12});
    
                this.auctions = result.hits;
    
                this.totalItems = result.nbHits;
                this.totalPages = result.nbPages;
                this.isLoading = false;
            } catch (error) {
                this.isLoading = false;
                console.log(error);
            }
        },
    },
    mounted() {
        // Llama al método fetchInventory cuando se monta el componente
        // para cargar los datos desde Algolia utilizando la API de búsqueda
        this.fetchInventory();
    }
    

Comments are closed.