<template>
  <div>
    <NuxtLink
      to="/"
      no-prefetch
    >
      Home
    </NuxtLink>
    <NuxtLink
      to="/random/a"
      prefetched-class="prefetched"
    >
      Random (A)
    </NuxtLink>
    <NuxtLink
      to="/random/b"
      prefetched-class="prefetched"
    >
      Random (B)
    </NuxtLink>
    <NuxtLink
      to="/random/c"
      prefetched-class="prefetched"
    >
      Random (C)
    </NuxtLink>
    <ServerOnlyComponent />
    <br>

    Random: {{ random }}

    Random: (global) {{ globalRandom }}

    Random page: <b>{{ route.params.id }}</b><br>

    Here are some random numbers for you:

    <ul>
      <li
        v-for="n in randomNumbers"
        :key="n"
      >
        {{ n }}
      </li>
    </ul>
    <button @click="() => refresh()">
      Give me another set
    </button>
  </div>
</template>

<script setup lang="ts">
const route = useRoute('random-id')

const pageKey = 'rand_' + route.params.id

const { data: randomNumbers, refresh } = await useFetch('/api/random', { key: pageKey as string })

const random = useRandomState(100, pageKey)
const globalRandom = useRandomState(100)
</script>

<style scoped>
  .prefetched {
    color: green;
  }
</style>