ionic icon indicating copy to clipboard operation
ionic copied to clipboard

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

Open Andr9651 opened this issue 1 year ago â€ĸ 5 comments

🐛 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:

  • Global middleware
  • Page middleware
  • App setup function
  • Page setup function

And I got these results:

  • (Nuxt alone) works as expected: image
  • (Nuxt + Nuxt/ionic) App setup gets run first but everything else in the correct order: image
  • (Nuxt + Nuxtjs/i18n) works as expected: image
  • (Nuxt + Nuxt/ionic + Nuxtjs/i18n) every page setup is run before middleware image

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 avatar May 23 '24 08:05 Andr9651

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?

Andr9651 avatar Jul 19 '24 09:07 Andr9651

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

danielroe avatar Jul 19 '24 13:07 danielroe

Do you think this is something that can / should be fixed @danielroe ? I can try to pick this up.

NRodriguezcuellar avatar Jun 01 '25 09:06 NRodriguezcuellar

So I used the reproduction URL provided and updated both the i18n and the Nuxt ionic package to the latest 0.18.0 and updating i18n didn't make a difference but updating nuxt ionic does seem to fix this issue! See here.

I imagine App setup always running first is not a bug but intended behavior as we "inject" nuxt's middleware behavior between pages so it will never be a 1 to 1.

NRodriguezcuellar avatar Jun 01 '25 10:06 NRodriguezcuellar

thank you for diving in â¤ī¸

danielroe avatar Jun 01 '25 10:06 danielroe