✍️

【Next.js/PrimeReact】Welcomeページ作ってみた

2023/05/01に公開

開発環境構築

npm install
npx creat-next-app welcome-app
cd welcome-app
npm run dev

※で、なぜか私ここでいつも通りlocalhost:3000でアクセスしようとしたらできなかったから原因追求してみた

Node.jsのバージョンが古かったっぽい

エラーメッセージ長すぎてはらないけど
調べたら「Node.js」のバージョン古いよ〜てことだった

voltaで、Node.jsのバージョンを公式推奨の16.0.0に変えた

volta install node@16.0.0

そしたらアクセス完了!

必要なパッケージのインストール

npm install next react react-dom primeicons primereact

Welcomeページのコード

pages/index.tsx

import React from 'react';
import { Button } from 'primereact/button';
import { Card } from 'primereact/card';
import { Panel } from 'primereact/panel';
import { Sidebar } from 'primereact/sidebar';
import { Toast } from 'primereact/toast';

const IndexPage = () => {
  const toast = React.useRef<Toast>(null);
  const [visibleSidebar, setVisibleSidebar] = React.useState(false);

  const showToast = () => {
    if (toast.current) {
      toast.current.show({
        severity: 'success',
        summary: 'Success',
      });
    }
  };

  return (
    <>
      <Sidebar visible={visibleSidebar} onHide={() => setVisibleSidebar(false)}>
        <h3 style={{ textAlign: 'center' }}>Sidebar</h3>
        <Button label="Close" className="p-button-secondary" onClick={() => setVisibleSidebar(false)} />
      </Sidebar>
      <Panel header="Welcome" style={{ margin: '2em auto', maxWidth: 600 }}>
        <Card>
          <h3>Hello, PrimeReact!</h3>
          <p>This is a sample Welcome page using PrimeReact UI components.</p>
          <Button label="Open Sidebar" onClick={() => setVisibleSidebar(true)} />
          <Button label="Show Toast" className="p-button-success" onClick={showToast} />
        </Card>
      </Panel>
      <Toast ref={toast} />
    </>
  );
};

export default IndexPage;

このコードでは、以下の PrimeReact コンポーネントを使用しています。

  • Button
  • Card
  • Panel
  • Sidebar
  • Toast

Welcome ページには、パネルヘッダーとして "Welcome" というテキストが含まれ、
カードには "Hello, PrimeReact!" というテキストが含まれます。
サイドバーを開くためのボタンと、成功トーストを表示するためのボタンがあります。

最後に、pages/_app.tsx ファイルに以下のコードを追加します。

import 'primeflex/primeflex.css';
import 'primereact/resources/primereact.min.css';
import 'primereact/resources/themes/mdc-light-deeppurple/theme.css';
import '../styles/globals.css';

function MyApp({ Component, pageProps }) {
  return <Component {...pageProps} />;
}

export default MyApp;

このコードでは、次のことを行っています。

  • primeflex スタイルシートのインポート
  • PrimeReact のテーマの適用
  • グローバルスタイルのインポート

これで、Next.js で PrimeReact を使用して Welcome ページを作成する準備が整いました。

こちらが完成の図です。

Discussion