0
0

More than 1 year has passed since last update.

Nuxt.jsでmicroCMSの記事を表示させる

Last updated at Posted at 2022-07-07

目的

ヘッドレスCMSを使って記事を投稿する案件があったので、実際に使ってみました

動作環境

  • node v16.15.1
  • npm v8.11.0
  • nuxt.js v2.15.8

1.はじめに

nuxt.jsの開発環境とmicroCMSの設定はすでにできていることを想定とします

1nuxt.jsでmicroCMSを使えるように設定する

microCMSの記事を表示させるにはaxiosを使う方法とmicroCMSのモジュールを使う方法があります。
今回は後者のmicroCMSを使った方法を使います

1.1 nuxt.jsにmicroCMSのモジュールをインストールする

npmからモジュールをインストールします

$ npm install nuxt-microcms-module

1.2nuxt.config.jpで設定をする

インストールが終わったらnuxt.config.jpにて設定をします

nuxt.config.jp
export default {
  buildModules: ['nuxt-microcms-module'],
  microcms: {
    options: {
      serviceDomain: process.env.SERVICE_DOMAIN,//サービスドメイン
      apiKey: process.env.API_KEY,//APIキー
    },
    mode: process.env.NODE_ENV === 'production' ? 'server' : 'all',
  },
};

上記のように設定する
今回はenvファイルを使って設定しているのでenvファイルに情報を記載する

.env
API_KEY=xxxxxxxxxxxx
SERVICE_DOMAIN=xxxxxxxxxxxxx

2 microCMSを使って表示させる

上記の設定でmicroCMSが使えるようになったので、実際に使ってみます

2.1 記事を表示させる

nuxt.jsのpage/のなかで作業します

index.vue
<template>
  <ul>
    <li v-for="content in contents" :key="content.id">
      <nuxt-link :to="`/${content.id}`">
        {{ content.title }}
      </nuxt-link>
    </li>
  </ul>
</template>

<script>
export default {
  async asyncData({ $microcms }) {
    const data = await $microcms.get({
      endpoint: 'your_endpoint',
      queries: { limit: 20, filters: 'createdAt[greater_than]2021' },
    });
    return data;
  }
}
</script>

こちらのコードで記事のタイトルを表示させることができたと思います

3 まとめ

axiosを使うよりもこちらのほうが簡単ではありますね
現在nuxt.js+microCMS+netlifyを使ったブログサイトを作成中です

0
0
0

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
0
0