1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【microCMS】Next.jsでのmicroCMSの連携とMVCモデルとの関連性について調べてみた【雑記】

Posted at

こんにちは。

以前にNext.jsでmicroCMSを連携させた個人開発ミニアプリを作成した記事を書きました。

上記の記事の中でも少し触れていますが、Next.jsとmicroCMSとの連携を通してMVCモデルの概念について知ることができました。
この記事で備忘録としてMVCモデルについて学べたことを記載していきたいと思います。

MVCモデルについて

Model, View, Controllerの3つから構成されているソフトウェア・Webシステムの設計モデルのこと。

  • Model(モデル)データベースと連携してデータを取得したりデータを加工したりする役割を担う部分。
    • CMSでいう「記事投稿」のロジックや機能がModel。
    • 記事投稿ページでデータを追加・更新・削除等をするのはModelのシステムがデータベースと連携することで成立しているイメージ。
  • View(ビュー)ユーザーに見える場所のロジックを担う部分。
    • システムから与えられた値によって動的に表示する内容を切り替える。動的にHTMLを生成する。
    • Next.jsならReact、WordPressならWP関数を用いた(ページ名).PHPがビューにあたるイメージ。
  • Controller(コントローラー)ModelとViewを繋ぐ部分
    • ユーザーからのリクエストに応じてデータの取得を依頼したり、モデルから渡されたデータをビューに渡したりする。
    • ページ上に存在するUIからの値の登録(例:フォーム)などもContollerの領域。

MVCモデルと「ヘッドレスCMS」の関係

microCMSをはじめとしたヘッドレスCMSはフロント部分とバックエンド部分が分離されたCMSと定義することができる。

具体的には、microCMSはそれ自体の表示部分の機構を持たず、他のアプリケーション内でmicroCMS内で登録したデータの内容を表示させることを前提としている。

Next.jsとの連携でいうと、microCMSで登録したデータを表示させるロジックはmicroCMS自体ではなくNext.js側がもっているということ。

つまりヘッドレスCMSはMVCモデルでいうViewを持たない(Viewを分離している)CMSと考えることができる。

Next.js×microCMSの構成をMVCモデルで考えてみる

ここまでの考察を踏まえてNext.js内でmicroCMSのデータをブログ形式で表示させるアプリケーションの構造を考えてみる。

アプリの要件

  • microCMS上で記事のデータ(見出し、サムネ、本文)を登録する
  • microCMSのコンテンツAPIをNext.jsと連携させることでmicroCMSのデータをNext.js内で使うことを可能にしている
  • 記事データを表示させるロジックはNext.js内のpage.tsxで実装されている

MVCモデルの考え方を適用させるなら

  • Model:microCMS、microCMSの記事データ登録機能
  • View:Next.js内のpage.tsx
  • Controller:Next.js内でAPIを取得する部分。 App Routerでいうとapp/api/(ディレクトリ)/route.tsxにあたる部分

という考え方になると思われる。(私は上記の考え方で理解した)

さいごに

ここまで読んでくださりありがとうございます。

MVCモデルはWebアプリケーションで高頻度で見かける設計モデルだったので、microCMSとNext.jsでの実装を通して概念を大まかにでも掴めたのは良い勉強になりました。

この経験を活かして今後のWebシステム作成やアプリケーション作成に活かしていきたいです。

参考記事

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?