48
26

More than 3 years have passed since last update.

nuxt spa, ssg, ssrそれぞれのasyncData, fetchのタイミング

Last updated at Posted at 2020-08-26

Nuxtのサーバーサイドでデータ取得のために使用するasyncDatafetchがspa, ssg, ssrそれぞれのモードでどういうタイミングで呼ばれるのか調査した。

Nuxt 2.14.0

API: asyncData メソッド - NuxtJS
The fetch Method - NuxtJS

spa

nuxt.config.js
{
  mode: 'spa',
  target: 'static',
}
$ nuxt generate
$ nuxt start

spaモードでasyncDatafetchも呼ばれないということはなく、クライアントサイドでちゃんと呼ばれる。

【PageAにアクセス】
Client PageA asyncData
Client PageA beforeCreate
Client PageA data
Client PageA created
Client PageA beforeMount
Client PageA fetch
Client PageA mounted

【nuxt-linkでPageBにアクセス】
Client PageB asyncData
Client PageA beforeDestroy
Client PageA destroyed
Client PageB beforeCreate
Client PageB data
Client PageB created
Client PageB beforeMount
Client PageB fetch
Client PageB mounted

ssg

nuxt.config.js
{
  mode: 'universal',
  target: 'static',
}
$ nuxt generate
$ nuxt start

asyncDatafetchはgenerate時に呼ばれ、クライアントサイドでは呼ばれない。

【generate】
Server PageA asyncData
Server PageB asyncData
Server PageA beforeCreate
Server PageA data
Server PageA created
Server PageA fetch
Server PageB beforeCreate
Server PageB data
Server PageB created
Server PageB fetch

【PageAにアクセス】
Client PageA beforeCreate
Client PageA data
Client PageA created
Client PageA beforeMount
Client PageA mounted

【nuxt-linkでPageBにアクセス】
Client PageA beforeDestroy
Client PageA destroyed
Client PageB beforeCreate
Client PageB data
Client PageB created
Client PageB beforeMount
Client PageB mounted

ssr

nuxt.config.js
{
  mode: 'universal',
  target: 'server',
}
$ nuxt build
$ nuxt start

直接アクセスするとサーバーサイドでasyncDatafetchが呼ばれる。
nuxt-linkでアクセスすると、クライアントサイドでasyncDatafetchが呼ばれる。

【PageAにアクセス】
Server PageA asyncData
Server PageA beforeCreate
Server PageA data
Server PageA created
Server PageA fetch
Client PageA beforeCreate
Client PageA data
Client PageA created
Client PageA beforeMount
Client PageA mounted

【nuxt-linkでPageBにアクセス】
Client PageB asyncData
Client PageA beforeDestroy
Client PageA destroyed
Client PageB beforeCreate
Client PageB data
Client PageB created
Client PageB beforeMount
Client PageB fetch
Client PageB mounted

48
26
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
26