Skip to content

useRouteQuery

Reactive binding for URL query parameters with Vue Router. Supports filtering, parsing, serialization, and default values.

Import

typescript
import { useRouteQuery } from 'vuiii'

Usage

typescript
// Basic usage - sync filters with URL
import { useRouteQuery } from 'vuiii'

const { queryParams, setQuery, setQueryParam } = useRouteQuery<{
  search: string
  category: string
}>({
  filter: ['search', 'category'],
  defaults: { category: 'all' }
})

// Read current params
console.log(queryParams.value.search)

// Update single param
setQueryParam('search', 'hello')

// Update multiple params
setQuery({ search: 'hello', category: 'books' })

More Examples

typescript
// With onChange callback for data fetching
const { queryParams } = useRouteQuery({
  filter: ['page', 'sort'],
  parse: { page: (v) => Number(v) || 1 },
  onChange: (params) => fetchData(params),
  immediate: true
})

Released under the MIT License.