Vue function that tracks browser's location search parameters.
function useSearchParams(
parameters: string[],
runOnMount?: boolean
): {
searchParams: Ref<object>
isTracking: Ref<boolean>
start: () => void
stop: () => void
}
parameters: string[]
the list of parameters you wish to trackrunOnMount: boolean
whether to run the location search parameters tracking on mount,true
by default
searchParams: Ref<object>
the object containing the search parameters as key value pairsisTracking: Ref<boolean>
whether this function events are running or notstart: Function
the function used to start tracking the location search parametersstop: Function
the function used to stop tracking the location search parameters
<template>
<div>
<div>
searchParams:
<pre>{{ JSON.stringify(searchParams, null, 2) }}</pre>
</div>
<div>
<button @click="push">Fire push event</button>
</div>
<div>
<button @click="start" v-if="!isTracking">Start tracking location</button>
<button @click="stop" v-else>Stop tracking location</button>
</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue'
import { useSearchParams } from 'vue-use-kit'
export default Vue.extend({
name: 'UseSearchParamsDemo',
setup() {
let count = 0
const url = location.origin + location.pathname
const push = () => {
count++
history.pushState('', '', `${url}?page=${count}`)
}
const { searchParams, isTracking, start, stop } = useSearchParams([
'page'
])
return { searchParams, isTracking, start, stop, push }
}
})
</script>