nuxt-modules / ionic

Batteries-included, zero-config Ionic integration for Nuxt
https://ionic.nuxtjs.org
MIT License
368 stars 38 forks source link

Nuxt middleware & page setup does not execute in the expected order when refreshing page #564

Open Andr9651 opened 4 months ago

Andr9651 commented 4 months ago

🐛 The bug

I was using middleware to fetch user configuration data before navigating to pages, when I realized that the page setup was run before the middleware. Through some trial and error I figured out that removing Nuxt/ionic fixed the issue, but I also found out that adding the Nuxtjs/i18n module worsened the issue.

So I created a project tracking the following:

And I got these results:

I'm still pretty new to Nuxt & Ionic so I might be completely missing some critical information, but the Nuxt/ionic documentation gives the impression that middleware should just work with no caveats.

🛠️ To reproduce

https://stackblitz.com/edit/hui123

🌈 Expected behaviour

For the execution order to match the basic Nuxt project when refreshing the page, and to also work with the i18n nuxt module

  1. Global middleware
  2. Page middleware
  3. App setup function
  4. Page setup function

ℹ️ Additional context

Reproductions used to get the different results: Nuxt middleware order (Nuxt only) Nuxt middleware order (Ionic) Nuxt middleware order (i18n) Nuxt middleware order (Ionic + i18n)

It might be related to the ionic router integration, because if I disable it in nuxt.config the execution order goes back to normal.

Andr9651 commented 2 months ago

I was hoping the needs reproduction label would disappear after a while, but that doesn't seem to be the case. That must mean that I'm doing something wrong even though I thought I had provided reproductions. Can anyone point me in the right direction on how to fix my issue, so the needs reproduction label disappears?

danielroe commented 2 months ago

I'm afraid that is the fault of the bot, not you!