mirror of
https://github.com/hanzoai/next.js.git
synced 2026-09-24 17:00:51 +00:00
This PR updates the with-web-worker example to use the App Router. Here are the changes that have been made: - Renamed the `pages` folder to the `app` folder. - Updated the routing for `/` files to align with the App Router. - Added the layout.tsx file as part of the App Router. - Updated the package.json file. The following actions were performed as part of this PR: - Ran `pnpm prettier-check` with no issues found. - Executed the `pnpm check-examples` script. --------- Co-authored-by: samcx <[email protected]>
27 lines
665 B
TypeScript
27 lines
665 B
TypeScript
"use client";
|
|
import { useEffect, useRef, useCallback } from "react";
|
|
|
|
export default function Index() {
|
|
const workerRef = useRef<Worker>();
|
|
|
|
useEffect(() => {
|
|
workerRef.current = new Worker(new URL("../worker.ts", import.meta.url));
|
|
workerRef.current.onmessage = (event: MessageEvent<number>) =>
|
|
alert(`WebWorker Response => ${event.data}`);
|
|
return () => {
|
|
workerRef.current?.terminate();
|
|
};
|
|
}, []);
|
|
|
|
const handleWork = useCallback(async () => {
|
|
workerRef.current?.postMessage(100000);
|
|
}, []);
|
|
|
|
return (
|
|
<>
|
|
<p>Do work in a WebWorker!</p>
|
|
<button onClick={handleWork}>Calculate PI</button>
|
|
</>
|
|
);
|
|
}
|