#1. フッターコンポーネントの作成
フッターコンポーネントを作成します。components
ディレクトリを作成し、その中にFooter.tsx
ファイルを追加します。
mkdir components touch components/Footer.tsx
components/Footer.tsx
に以下のコードを追加します。
// components/Footer.tsx import React from 'react'; const Footer: React.FC = () => { return ( <footer className="bg-gray-800 text-white py-4"> <div className="container mx-auto text-center"> <p>© {new Date().getFullYear()} My Next.js App. All rights reserved.</p> </div> </footer> ); }; export default Footer;
#2. フッターをレイアウトに追加
次に、layouts
ディレクトリを作成し、MainLayout.tsx
ファイルを追加します。
mkdir layouts touch layouts/MainLayout.tsx
layouts/MainLayout.tsx
に以下のコードを追加します。
// layouts/MainLayout.tsx import React from 'react'; import Footer from '../components/Footer'; type MainLayoutProps = { children: React.ReactNode; }; const MainLayout: React.FC<MainLayoutProps> = ({ children }) => { return ( <div className="flex flex-col min-h-screen"> <main className="flex-grow">{children}</main> <Footer /> </div> ); }; export default MainLayout;
#3. ページコンポーネントでレイアウトを使用
作成したレイアウトコンポーネントを各ページで使用します。例えば、pages/index.tsx
で以下のようにします。
// pages/index.tsx import React from 'react'; import MainLayout from '../layouts/MainLayout'; const Home: React.FC = () => { return ( <MainLayout> <h1 className="text-center text-2xl mt-10">Welcome to My Next.js App</h1> {/* 他のコンテンツ */} </MainLayout> ); }; export default Home;
#4. アプリケーションを起動して確認
アプリケーションを起動して、フッターが正しく表示されることを確認します。
npm run dev # または yarn dev
ブラウザで http://localhost:3000
にアクセスし、ページの下部にフッターが表示されていることを確認してください。
#まとめ
これで、Next.js、TypeScript、TailwindCSSを使用して共通のフッターコンポーネントを作成し、全ページに適用する方法が分かりました。TailwindCSSを使用することで、簡単にスタイルを適用できます。