Nuxt.js 環境変数を使用する

トップ ― Nuxt.js 環境変数を使用する

投稿者 : TomoyaOkada

公開日:

更新日:

Nuxt.js 環境変数を使用する

Vue/Nuxt

目次

以前、下記の記事で環境変数の登録の仕方をご紹介しました。
https://next-blog.site/media/nuxt-env

登録した環境変数を使う際に少し躓いたので備忘録として記載していきます。


.envの準備

環境変数を.envに設定している前提で話を進めます。

API_KEY = xxxxxxxxxxxxxxxxxxxx


まだ設定ができていない方は、こちらをみて行ってください。



環境変数の呼び出し

pages/index.vueにて

  async asyncData({ $config }) {
    const url = 'https://xxx.microcms.io/api/v1/xxxx'
    const limit = 10
    const hoge = await axios.get(`${url}?limit=${limit}`, {
      headers: { 'X-MICROCMS-API-KEY': $config.API_KEY },
    })
    return {
      lists: hoge.data.contents,
    }
  },


asyncDataを使って$config経由で環境変数を取得することができました。
色々な記事を見てみるとこれが一般的な取得方法になるようです。


しかし、components内のコンポーネントにて$configを使ったところうまく取得することができませんでした。
おそらく私の知識不足でうまく定義ができていないのだと思います。

とりあえず下記のような方法でコンポーネントでも環境変数を使えるようにしました。

store/api/index.jsにて

export const state = () => ({
  api: process.env.API_KEY,
})

export const getters = {
  getApiData(state) {
    return {
      api: state.api,
    }
  },
}


store経由で取得してみようという感じですね。

components/hoge.vue

  data() {
    return {
      api: '',
    }
  },  
created() {
    const getApiData = this.$store.getters['api/getApiData']
    this.api = getApiData.api
  },


created時にstoreから情報を取得してdataのapiに情報を渡しています。
以上でしっかりと環境変数を使うことができるようになりました。

  mounted() {
    this.hoge()
  },
methods: {
  hoge() {
   console.log(this.api)
  }
}


コンソールに出力されていれば成功です。

間違いなくもっとスマートなやり方があります。
1つのやり方としてご紹介させていただきました。



記事をシェア

  • Twitter
  • FaceBook
  • hatena