Next.js Material UIの環境整備

Posted: February 18, 2022

Next.jsでMaterial-UIを使う
Next.jsでMaterial-UIを利用する方法を紹介します。 Material-UIは、 マテリアルデザインのReactコンポーネントを簡単に取り入れられるライブラリ です。 特に何も気にせずNext.jsのアプリにMaterial-UIを取り入れると以下のようなエラーが出てきます。 公式のドキュメントには以下のように説明されています。 Material-UIは、サーバーでのレンダリングの制約を考慮してゼロから設計されましたが、正しく統合されるかどうかはユーザー次第です。 サーバサイドレンダリングでは必要とされるCSSが正しく渡される必要があります。(ドキュメントより) つまり、SSR(サーバサイドレンダリング)に対応できるが、 利用するときに正しくCSSを渡すように設定する必要がある みたいです。 Next.jsアプリでMaterial-UIを使うときには下記のファイルに変更が必要です。 どちらもほぼMaterial-UIのリポジトリのサンプルコードをコピペするだけになります。 まずはNext.jsのアプリを作成します。 ❯ npx create-next-app material-ui-app --use-npm Next.jsのアプリ作成についてはこちらでも解説しています。 npm でMaterial-UIをインストールします。 ❯ npm install @material-ui/core index.js にMaterial-UIのボタンを追加します。 今回利用したコンポーネントは下記になります。 import Head from 'next/head' import Image from 'next/image' import styles from '../styles/Home.module.css' import React from 'react'; import { makeStyles } from '@material-ui/core/styles'; import Button from '@material-ui/core/Button'; const useStyles = makeStyles((theme) => ({ root: { '& > *': { margin: theme.spacing(1), }, }, })); export default function Home() { const classes = useStyles(); return ( Create Next App Welcome to Next.js!

上記を参考にしたらできた

Nuxt.js + Vuetifyよりなんかややこしい気がする(多分ただの勉強不足)