Skip to content

useBackForward

This composable returns two functions, onBackForward and reloadOnBackForward, that register callbacks which will be called after a back-forward navigation.

A back-forward navigation is a navigation that uses the "back" or "forward" browser functionality.

Usage

ts
function useBackForward(): {
  onBackForward: (fn: BackForwardCallback) => void
  reloadOnBackForward: (options: HybridRequestOptions) => void
}
function useBackForward(): {
  onBackForward: (fn: BackForwardCallback) => void
  reloadOnBackForward: (options: HybridRequestOptions) => void
}

Calling useBackForward creates a scope in which callbacks are registered. It returns onBackForward and reloadOnBackForward, which add a callback to the scope when called.

Examples

The following example reloads the page when a back or forward browser navigation is made, in order to refresh potentially-stale data.

vue
<script setup lang="ts">
const { reloadOnBackForward } = useBackForward() 

defineProps<{
  users: Paginator<App.Data.UserData>
}>()

reloadOnBackForward({  
  only: ['users']
})
</script>
<script setup lang="ts">
const { reloadOnBackForward } = useBackForward() 

defineProps<{
  users: Paginator<App.Data.UserData>
}>()

reloadOnBackForward({  
  only: ['users']
})
</script>

The following example calls the defined callback when a back or forward browser navigation is made.

vue
<script setup lang="ts">
const { onBackForward } = useBackForward() 

onBackForward(({ url }) => {  
  console.log(`Back-forward navigation made to ${url}`)
})
</script>
<script setup lang="ts">
const { onBackForward } = useBackForward() 

onBackForward(({ url }) => {  
  console.log(`Back-forward navigation made to ${url}`)
})
</script>