Gatsbyがはじめての方は下記の記事も参考にしてください。
React製静的サイトジェネレーターGatsby使ってみた
インストール
下記コマンドでプラグインをインストールします。
react-helmetはReactのコンポーネントですが、それをGatsbyのプラグインで利用できるようにしたのがgatsby-plugin-react-helmetですね。
$ npm install --save gatsby-plugin-react-helmet react-helmet
プロジェクトルートにあるgatsby-config.jsを編集してこのプラグインを使えるようにします。
gatsby-config.js
module.exports = {
plugins: [`gatsby-plugin-react-helmet`]
}
これで準備完了。
使ってみる
試しにindexページに設定してみましょう。
page/index.js
import React from 'react'
import Helmet from "react-helmet"
export default () => (
<div>
<Helmet
htmlAttributes={{
lang: 'ja',
}}
title="Gastbyサンプル"
meta={[
{ name: 'description', content: 'このページはGastbyサンプルです。' }
]}
/>
</div>
)
Helmetの部分はこんな感じにタグっぽく書いてもOKです。
<Helmet> <title>Gastbyサンプル</title> <meta name="description" content="このページはGastbyサンプルです。" /> <html lang="ja" /> </Helmet>
外部コンポーネント化
head要素は各ページで共通で使用する部分もあるのでHelmetの部分は外部コンポーネントにした方がいいですね。
例えばsrc/components/head.jsを下記のように作成してみます。
src/components/head.js
import React from 'react'
import Helmet from "react-helmet"
export default (props) => (
<Helmet
htmlAttributes={{
lang: 'ja',
}}
title={ (props.title ? props.title + ' | ' : '') + "サイトタイトル" }
meta={[
{
name: 'description',
content: props.description || 'Gastbyサンプル'
}
]}
/>
)
あとはコンポーネントをインポートして配置するだけで使えます。
index.jsを下記のように編集してみましょう。
src/page/index.js
import React from 'react' import Head from '../components/head' export default () => ( <div> <Head /> </div> )
下層ページではpropsを設定して、細かく調節できます。
<Head title="自己紹介" description="自己紹介ページです。" />
以上、react-helmetの基本的な使い方がわかったと思いますが、react-helmetはスターターデーマによっては最初から組み込まれているのがあるので、基本的にはそちらを使用した方がいいかと思います。
gatsby-plugin-react-helmet



