Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2022年最新版 GatsbyJS + TypeScript + microCMS でブログを作る。
Search
hanetsuki
May 26, 2022
Technology
1
12k
2022年最新版 GatsbyJS + TypeScript + microCMS でブログを作る。
hanetsuki
May 26, 2022
Tweet
Share
More Decks by hanetsuki
See All by hanetsuki
ソフトウェア開発ナニモワカラナイ
hanetsuki
0
170
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
2k
Next.jsの今年一年を振り返る
hanetsuki
1
1.4k
大規模メディアにおけるNext.js とVercelのレンダリングとキャッ シュ戦略について
hanetsuki
4
3.2k
Next.jsチョットデキル!サイトの規模やページ特性に合わせた開発テクニック
hanetsuki
3
2.3k
Jamstackで事前に欲しいパーツ群を洗い出す
hanetsuki
1
390
Next.jsで静的サイトを作成時 よく使っているライブラリまとめ
hanetsuki
5
18k
Next.jsで整える。デザインとロジックの分離
hanetsuki
5
4.5k
Other Decks in Technology
See All in Technology
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.7k
怖くない!GritQLでBiomeプラグインを作ろうよ
pal4de
1
100
AI工学特論: MLOps・継続的評価
asei
7
710
自分がLinc’wellで提供しているプロダクトを理解するためにやったこと
murabayashi
1
150
Railsの限界を超えろ!「家族アルバム みてね」の画像・動画の大規模アップロードを支えるアーキテクチャの変遷
ojima_h
2
210
Amazon CloudWatchのメトリクスインターバルについて / Metrics interval matters
ymotongpoo
3
150
SREを知らずに SREマネージャーになった話 / How I Became an SRE Manager Without Knowing What SRE Is
moneyforward
0
240
ObsidianをLLM時代のナレッジベースに! クリッピング→Markdown→CLI連携の実践
srvhat09
7
8.5k
スプリントゴール未達症候群に送る処方箋
kakehashi
PRO
1
170
DATA+AI SummitとSnowflake Summit: ユーザから見た共通点と相違点 / DATA+AI Summit and Snowflake Summit
nttcom
0
150
今日からあなたもGeminiを好きになる
subaruhello
1
490
Webの技術とガジェットで那須の子ども達にワクワクを! / IoTLT_20250720
you
PRO
0
120
Featured
See All Featured
KATA
mclloyd
30
14k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
760
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
It's Worth the Effort
3n
185
28k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
370
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
How GitHub (no longer) Works
holman
314
140k
Transcript
2022年最新版 GatsbyJS + TypeScript + microCMS でブログを作る。 2022/05/26 by hanetsuki
in ジャムジャム!!Jamstack_7
hanetsuki • 中野にあるweb開発会社”ちょっと株式会社”所属 • 業界歴5年目のフロントエンドエンジニア • デザインと開発とオタクコンテンツが好き 自己紹介
GatsbyJSって何?
GatsbyJSは、 静的サイトジェネレーターでReactをベースに開発されているフレームワークです。 特徴として、Gatsbyではデータを取得する際にはGraphQLを利用します。 GraphQLを使って内部リソースのMarkdownファイルや、CMSなどのさまざまなデータを取得する ことができます。
microCMSを用意する
microCMSを用意する 1. 環境を作成します サービスIDは後ほど利用するので控えておきます。
microCMSを用意する 2. APIを作成します テンプレートが用意されているのでそちらを利用します。 今回は、ブログを選択します。 しばらくするとコンテンツが作成されます。
microCMSを用意する 3. APIキーを控えておきます 後で、利用するのでこの画面で控えておきます。
GatsbyJSの環境を作る
GatsbyJSの環境を作る 公式のQuick startに従って下記のコマンドを実行します。 参考:https://www.gatsbyjs.com/docs/quick-start/ npm init gatsby
GatsbyJSの環境を作る microCMSのコンテンツを取得する microCMSが公式で提供している gatsby-source-microcms を利用します。 .env npm install gatsby-source-microcms MICROCMS_SERVICE_ID=
MICROCMS_API_KEY=
GatsbyJSの環境を作る GraphQL Typegen を利用してみる GatsbyJSのv4.14で実験的に投入された GraphQL Typegen を利用してみます。 これにより、動的に src/gatsby-types.d.ts
が作成され Queries.** でGraqhQLの型定義を取得することができます。
microCMSからコンテンツを取得する
コンテンツの一覧を取得してみる /pages/index.tsx にGraphQLを記載します。 • 公開日降順 • 最大3件 microCMSからコンテンツを取得する
コンテンツの一覧を表示してみる 取得した情報を表示してみます。 microCMSからコンテンツを取得する
表示できました。 microCMSからコンテンツを取得する
一覧ページを作成する
ブログの一覧ページを作成します。 ページのパスは、 /blogs/ をベースとして、 2ページ移行がある場合には、 /blogs/page/{number} のようなパスになるよう考慮していきます。 動的ページの作成記述は全て gatsby-node.ts に集約させます。
GatsbyJS v4.9 から.tsファイルが利用できるようになりました。 一覧ページを作成する
ブログの一覧ページを作成します。 一覧ページを作成する
ブログの一覧ページを作成します。 ページのパスは、 /blogs/ を基本として、 ページネーションする場合は、 /blogs/page/2 のように値が増えていくよう想定します。 動的ページの作成記述は全て gatsby-node.ts に集約させます。
一覧ページを作成する
ブログの一覧ページを作成します。 一覧ページを作成する
src/templates/blogs.tsx にGraqhQLを記載します。 $limit や $offset には、gatsby-node.tsで記載したcontextに渡したパラメーターが扱えます。 一覧ページを作成する
src/templates/blogs.tsx 一覧ページを作成する
詳細ページを作成する
ブログの詳細ページを作成します。 gatsby-node.ts にページの詳細ページを作成するための 記述をします。 idはmicroCMSのコンテンツIDを利用します。 詳細ページを作成する
src/templates/blog.tsx にGraqhQLを記載します。 $id には、gatsby-node.tsで記載したcontextに渡したパラメーターが扱えます。 詳細ページを作成する
下記のようなページが簡単に作れました。 詳細ページを作成する
ご清聴ありがとうございました