現在、 Gatsby.jsを使った爆速ブログを作っています。完成次第このブログをWordPressからGatsbyに移行させようと目論んでいます。
今回は、ブログのタイトルを各コンポーネント内に直接記述するのではなく、configファイルから読み込む方法について知ったのでメモします。
gatsby-config.jsでタイトルなどを設定
configファイル内に表示させたい情報を書きます。とりあえずブログタイトルと著者名を入れてみました。
module.exports = {
siteMetadata: {
title: 'とおまわりのブログ',
author: 'とおまわり',
},
// 略(プラグインなど)
}
GraphiQLで確認
configファイルを保存したら、一旦停止して再度gatsby developを実行し、http://localhost:8000/___graphql を開きます。
デフォルトで入っているコメントをすべて削除し、下記の通り入力して実行ボタンをクリックします。
query {
site {
siteMetadata {
title
}
}
}

実行結果にタイトルが表示されれば成功です。
ヘッダーにタイトルを表示
では今回はヘッダー(header.js)内で、先ほど設定したブログのタイトルを表示してみます。
gatbyから2つ、graphqlとuseStaticQueryをインポートします。
import React from 'react'
import { Link, graphql, useStaticQuery } from 'gatsby'
import headerStyles from './header.module.scss'
const Header = () => {
const data = useStaticQuery(graphql`
query {
site {
siteMetadata {
title
}
}
}
`)
return (
<header className={headerStyles.header}>
<h1>
<Link className={headerStyles.title} to="/">
{data.site.siteMetadata.title}
</Link>
</h1>
</header>
)
}
export default Header

やったー。表示されました。

