Menu
Coddy logo textTech

まとめ: サーバーとクライアント

CoddyのReactジャーニー「Next.js の基本」セクションの一部 — レッスン 22/47。

challenge icon

チャレンジ

中級

章のまとめ: サーバーとクライアントの境界線を自分で引きましょう。

ページはサーバー上で料理(dishes)を一覧表示しますが、ボタンに直接 onClick を配置しているため、アプリがまったくレンダリングされません。ページをクライアントコンポーネントとしてマークすることなく、これを修正してください:

  1. components/OpenHours.jsx に、state で open ブーリアンを保持し、id="toggle" を持つボタンをレンダリングするクライアントコンポーネント(1行目に 'use client')を構築します。そのテキストは、閉じているときは Show hours、開いているときは Hide hours である必要があります。
  2. 開いているときは、id="hours"Open 9am-5pm というテキストを持つ <p> もレンダリングします。閉じているときは、その段落が存在してはいけません。
  3. app/page.jsx で、壊れているボタンと常に表示されている段落を '../components/OpenHours' からインポートした <OpenHours /> に置き換えます。見出しと料理のリスト(dish list)はそのまま残し、ページはサーバーコンポーネントのままにします。

自分で試してみよう

import './globals.css';

export const metadata = {
    title: 'My App',
};

export default function RootLayout({ children }) {
    return (
        <html lang="en">
            <body>
                {children}
            </body>
        </html>
    );
}

Next.js の基本のすべてのレッスン