Nuxt.jsのmodulesの使い方
Nuxt.jsのmodulesの使い方を紹介します。
目次から読む
Nuxt.jsのmodulesとは
modelesはNuxt.jsの拡張機能です。
modulesを使う手順
- モジュールを探す
- モジュールをインストールする
- nuxt.config.jsに登録する
モジュールの探し方
モジュールの探し方ですが、https://github.com/nuxt-community/awesome-nuxtという便利なモジュールをまとめてくれているページがあります。Officialのところにたくさん使えるモジュールが記載されています。
モジュールをインストールする
#npm install --save [モジュール名]上のコマンドにモジュール名を入れてインストールします。
nuxt.config.jsに登録する
  modules: [
    'モジュール名'
  ],上のように登録します。
具体例として、axiosを設定してみます。
nuxtjs/axiosの例
たとえば、axiosであれば、上のサイトでsetupのところまでたどると次のコマンドが見つかります。
#npm install @nuxtjs/axiosそして、nuxt.config.jsに登録します。
  modules: [
    '@nuxtjs/axios'
  ],baseURLを設定
オプションでaxiosにbaseURLを設定することができます。
  axios: {
    baseURL: process.env.BASE_URL || 'https://ここにurl'
  }使い方
      nuxtServerInit(vuexContext, context) {
        return axios.get(`${process.env.baseUrl}/posts.json`)...
      },vuexのactionsで使う場合、もともとが上のような記述なら、
      nuxtServerInit(vuexContext, context) {
        return context.app.$axios.$get('/posts.json')...
      },という記述だけでよくなります。
axiosでbaseURLを登録しているのであれば、process.env.baseUrlの記述も不要になります。
また、axiosを個別ファイルでインポートする必要もありません。
また、続きで次のようなthen()ブロッグも
        .then(res => {
          const postsArray = []
          for (const key in res.data) {
            postsArray.push({ ...res.data[key], id: key })
          }
          vuexContext.commit('setPosts', postsArray)
        })responseがダイレクトにdata部分が取得できるので、上のres.の部分が不要になります。
        .then(data => {
          const postsArray = []
          for (const key in data) {
            postsArray.push({ ...data[key], id: key })
          }
          vuexContext.commit('setPosts', postsArray)
        })asyncData(context) {
 return axios.get(process.env.baseUrl+'/posts/'...上のような記述なら、
asyncData(context) {
 return context.app.$axios.$get('/posts/'...となります。また、importしているaxiosも削除できます。