Upgrade to Pro — share decks privately, control downloads, hide ads and more …

microCMSとNext.jsで記事を分割して作ったらうまく作れた話

 microCMSとNext.jsで記事を分割して作ったらうまく作れた話

nagoya.ts#3で登壇しました
「microCMSとNext.jsで記事を分割して作ったらうまく作れた話」
https://nagoyats.connpass.com/event/336678/

みやざきかいと

November 28, 2024
Tweet

Other Decks in Programming

Transcript

  1. © 2023 Ateam Inc. ⾃⼰紹介 宮﨑 海斗 株式会社エイチームライフデザイン 2021年入社 フロントエンドエンジニア

    Next.jsやReactを主に触っています Vimmer VimとロードバイクとPCゲームが好き 休日は引きこもってゲームや開発か、󰣤で家の近くの峠を走ってます 先月は琵琶湖一周してきました 2
  2. © 2023 Ateam Inc. 7 要件に合わないことがある HTML • パースしにくいこと •

    深いネストに対応できない • 想定外の属性 Markdown • 細かいことができない • 属性を付けられない
  3. © 2023 Ateam Inc. 14 microCMSを使う • コンテンツマネジメントシステム • ヘッドレスCMSなので、フロントエンドは自由

    • APIスキーマという形でAPIをカスタムして作ることができる • APIを複数作ることができる • APIスキーマという形でデータの定義を自分でできる
  4. © 2023 Ateam Inc. 19 microCMSの出⼒ { "article": [ {

    "fieldId": "heading", "text": "Componentで管理をします ", "level": 2 }, { "fieldId": "text", "text": "Componentを先に作っておいて、それを CMSから指定する形にします \nComponentの指定と一緒にデータを渡すようにす ..." }, { "fieldId": "accordion", "title": "Componentで管理する方法 ", "accordion": [ { "fieldId": "accordion-item", "summary": "APIスキーマに各 Componentを定義する ", "details": "ひとつのセクションごとに APIスキーマを定義します。 \n Componentを定義して、一緒にデータを渡すようにしま ..." } ] } ] }
  5. © 2023 Ateam Inc. 20 Next.jsの実装 Zodを使ってスキーマを定義する • Build時等にデータのミスを気づくことができる •

    自由にバリデーションが追加できる • 型の世界に入れるのでコードが書きやすい
  6. © 2023 Ateam Inc. 22 この形で実装するメリットは? 細かい実装がしやすくなる • HTMLで属性の受け渡しが複雑だったが容易に属性を渡しやすくなる •

    Markdownでそもそも属性をつけられなかったが追加できる • Componentさえ作っておけば、なんでも配置ができる
  7. © 2023 Ateam Inc. 26 まとめ Next.jsとCMSを使ってComponentを管理するとやりやすかった • CMSから渡せるデータが増えるので細かなデザインに対応しやすい •

    型を書いて進められるので記事作成の問題発見につながりやすい • コンテンツの再利用がしやすいので記事作成のスピードが上がる