カクカクしかじか

技術的なアレコレ

Nuxt.jsのasyncDataについて

近況

最近、突然無性にやりたくなりNuxt.jsの勉強を始めました!
という訳でノロノロと勉強したメモを放流します。

asyncDataについて

Vue.jsにはdata関数というDOMで扱うプロパティを予め定義しておいてコンポーネント内で使用出来る仕組みがあります。
さらにNuxt.jsには、それを拡張した機能がある模様です。
それが asyncData という訳です。
asyncData は非同期処理を行いSSR(サーバーサイドレンダリング)を行うための関数であるそうな...
DOMの表示速度において優位な仕組みを提供してくれるNuxt.jsの拡張機能という理解をしています📝

例:Qiita APIから一覧を取得する処理

こちらは Nuxt.jsビギナーズガイドp46参照

asyncData関数はVue.jsのmountedとは違いコンポーネントの初期化前に実行されるようです。
その時点ではthisへはアクセス出来ないためasyncDataに格納された情報のうちのアプリケーションに関わる値であるappを利用して以下のコードは処理を行なっています。

<script>
export default {
  async asyncData ({ app }) {
    const items = await app.$axios.$get('https://qiita.com/api/v2/items?query=tag:nuxt.js')
    return {
      items
    }
  }
}
</script>

最後に

Nuxt.jsとRailsを使って個人開発を行いたいと漠然と思っていたので、手始めにNuxt.jsの勉強を開始してみました!
一通り格闘したらなんか作るぞ!!