Next.js(~12v)に関するメモ

に公開

このページはNext.jsに関するメモ(基本的なこと)のページ。
随時更新予定

・アプリケーション作成

npx create-next-app <アプリ名> --typescript


・pages/api/hello.tsの型

// NextApiRequestとNextApiResponseを追加
import { NextApiRequest, NextApiResponse } from "next"; 

export default function handler(req: NextApiRequest, res: NextApiResponse) { 
   res.status(200).json({ name: 'John Doe' }) 
}


pages/_app.tsxの型

import '../styles/globals.css';
// AppPropsを追加
 import type { AppProps } from 'next/app'; i
mport Layout from '../components/Layout';

// 全てのページで読み込ませたいコンポーネントも追記(Layout)
function MyApp({ Component, pageProps }: AppProps) { 
  return ( 
    <> 
      <Layout> 
        <Component {...pageProps} /> 
      </Layout> 
    </> 
   ); 
}
export default MyApp;


・faviconの設定

public/static配下にfaviconを用意

// pages配下に_document.tsxを作成
import Document, { Head, Main, NextScript } from "next/document";

export default class MyDocument extends Document {
  rendet() {
     return (
         <html>
               <Head>
                   // faviconをここに記述
                   <link rel="icon" type="image/png" sizes="32x32" href="static/favicon/hoshico32.png" />
                   <link rel="icon" type="image/png" sizes="16x16" href="static/favicon/hoshico16.png" />
               </Head>
               <body>
                   <Main />
                   <NextScript />
               </body>
         </html>
     )
  }
}


・next/imageで外部のURLを使用するとき

next.config.jsで外部ドメインを設定しておく必要がある

// images.microcms-assets.ioが外部ドメイン

module.exports = {
  images: {
    domains: ['images.microcms-assets.io'],
  },
};