NextJSフレームワークにおけるクライアントコンポーネント
さて、サーバーコンポーネントをクライアントコンポーネントに書き換えてみましょう。そのためには、コンポーネントファイルの先頭にディレクティブ 'use client' を記述します:
'use client';
export default function Test() {
return <h1>hello, user!</h1>;
}
これで、useState を通じて作成されるステートが利用可能になります。例としてステートを作成し、その内容をマークアップに出力してみましょう:
'use client';
import { useState } from 'react';
export default function Test() {
let [name, setName] = useState('user');
return <h1>hello, {name}!</h1>;
}
2つの入力フィールドとボタンを持つクライアントコンポーネントを作成してください。入力フィールドには数値を入力できるようにします。ボタンが押されたら、入力された数値の合計を段落タグに出力してください。
ディレクティブ 'use client' を削除してください。その場合、NextJS がサーバーコンポーネント内部でステートを使用できないためにエラーを発生させることを確認してください。