2001Yのプロフォール画像

2001Y@Y20010920T

Next.js 13 からBetaとして React 18 に準拠したappディレクトリが導入された。

まだロードマップ公開中で、本番では使えないが、ネストされた共通レイアウトはやはり便利。

appDirによってデフォルトでサーバーコンポーネントとして扱われるようになった。例外としてファイル先頭に"use client";を書くことで、そのファイル内はクライアントサイドで実行される。

そこで"use client";useEffectを使い、10秒毎にブラウザを再読み込みするようにした。Unsplashの画像がランダムで切り替わることでリロードが確認できる。

// ./app/page.jsx

import Reload from "./component/Reload";

export default function Page() {
    return (
		<>
			<h1>Auto reflesh</h1>
			<img src="https://source.unsplash.com/random/500x500" />
			<Reload />
		</>
	)
}
// ./app/component/Reload.jsx

"use client";
import { useEffect } from "react";

export default function Reload() {
    useEffect(() => {
        setInterval(() => {
            location.reload()
        }, 10 * 1000); //10秒毎
    });
    return null;
}