next.js/test/e2e/app-dir/worker/app/shared/page.js
page.js40 lines1.0 KB
'use client'
import { useState } from 'react'

export default function Home() {
  const [state, setState] = useState('default')
  return (
    <div>
      <button
        onClick={() => {
          const worker = new SharedWorker(
            new URL('../shared-worker', import.meta.url),
            {
              type: 'module',
            }
          )
          worker.port.addEventListener('message', (event) => {
            setState(event.data)
            // Run a second time, which will use the same worker
            const worker = new SharedWorker(
              new URL('../shared-worker', import.meta.url),
              {
                type: 'module',
              }
            )
            worker.port.addEventListener('message', (event) => {
              setState(event.data)
            })
            worker.port.start()
          })
          worker.port.start()
        }}
      >
        Get web worker data
      </button>
      <p>Worker state: </p>
      <p id="worker-state">{state}</p>
    </div>
  )
}
Quest for Codev2.0.0
/
SIGN IN