Repository navigation
Releases
Releases Β· iamsomraj/vue-qs
v0.2.8
vue-qs has a mascot: a friendly green ?, since every query string starts with one.
π Documentation
v0.2.7
vue-qs now ships a Nuxt module: add modules: ['vue-qs/nuxt'] to nuxt.config and use useQueryState without any setup or imports.
π Enhancements
- New
vue-qs/nuxtmodule: installs the plugin with the Vue Router adapter and auto-importsuseQueryState,useQueryStatesand theparseAs*parsers; optionalvueQs.defaultOptionsandvueQs.autoImports(12feeb0)
π Documentation
- Nuxt module setup in the README, getting started, adapters guide and docs home page (en, zh) (12feeb0)
v0.2.6
vue-qs is now listed in Awesome Vue under State Management.
π Documentation
- Awesome Vue badge and mention in the README, and in the docs home page (en, zh) (da1a983)
v0.2.5
Brings vue-qs closer to nuqs: the nuqs parser, serializer, loader, Standard Schema and testing test suites now pass against vue-qs, except for vue-qs naming ([vue-qs] errors, the vue-qs Standard Schema vendor) and one deliberate difference: parser.parse returns null instead of throwing, so strict errors for throwing parsers say "got null".
π Enhancements
defaultOptionsandprocessUrlSearchParamsoncreateVueQs,provideQueryAdapterand<VueQsAdapter>, like nuqs adapters;createSerializeracceptsprocessUrlSearchParams(a798ea5)- New
vue-qs/testingentry point withisParserBijective,testParseThenSerializeandtestSerializeThenParse(44ebd66) - Type names from nuqs:
SingleParser,MultiParser,GenericParser,SingleParserBuilder,MultiParserBuilder,GenericParserBuilder,ParserWithOptionalDefault,LoaderFunction,LoaderFunctionOptions,SearchParams(44ebd66)
π©Ή Fixes
parseAsJsonworks with ArkType schemas (0bd9720)parseAsIsoDateTime/parseAsIsoDatereject impossible calendar dates,parseAsTimestamprejects out-of-range timestamps,parseAsHexserializes negative numbers without padding (0bd9720)parseAsNativeArrayOffalls back to the default when no item is valid, and writes an empty array as?key=; array parsers accept item parsers withoutserializeoreq(0bd9720)- Parser keys named like
Object.prototypemembers (constructor,hasOwnProperty) work in composables,urlKeys,createSerializerandcreateLoader(0f34047) createSerializerkeeps credentials and empty hashes from URL bases (0f34047)createStandardSchemaV1validates state values like nuqs: values are serialized, then parsed back in strict mode, so invalid values are reported as issues instead of falling back to defaults (0f34047)
β οΈ Behaviour changes
createStandardSchemaV1input is now state values keyed by state keys (noturlKeys). Strings still work for most parsers ({ page: '2' }), but not for parsers whoseserializeexpects a typed value, such as dates.- Strict loader errors now read
[vue-qs] Failed to parse query `abc` for key `page` (got null).
π Documentation
- App-wide settings in the adapters guide, testing custom parsers in the testing guide, and the parsers and server guides updated for the changes above
β€οΈ Contributors
- Somraj Mukherjee (@iamsomraj)
v0.2.4
π Documentation
- Add a runnable StackBlitz playground (Vite + Vue Router) linked from the README and docs (d7fecc3)
- Add a comparison page (vue-qs vs VueUse
useRouteQueryvsroute.querywatchers) and a demo GIF in the README (a9927ee) - Translate the Chinese guide to the 0.2 API: Getting Started, Parsers, Adapters and Migration (3ea6122)
β€οΈ Contributors
- Somraj Mukherjee (@iamsomraj)
v0.2.3
π‘ Chore
- Improve the npm package description and keywords so vue-qs is easier to find in npm search (bc62fc6)
- Add community health files: a Code of Conduct, issue forms and a Community section in the README and docs (c6b1d5d)
β€οΈ Contributors
- Somraj Mukherjee (@iamsomraj)
v0.2.2
π£ Read the announcement and share feedback: #32
π Enhancements
- Support vue-router 5: the peer dependency range is now
^4.2.0 || ^5.0.0(47aeebd)
π‘ Chore
- Upgrade the toolchain (Vitest 5, ESLint 10, TypeScript 6, vite 8, Bun 1.4 and others) and resolve all 68 known vulnerabilities in dev dependencies (bdbabf2)
- Deploy the docs with a GitHub Actions Pages workflow on release; the API reference is generated at build time (bdbabf2)
- CI: Node 22/24/26 matrix and the latest GitHub Actions (bdbabf2)
β€οΈ Contributors
- Somraj Mukherjee (@iamsomraj)
v0.2.1
π©Ή Fixes
- Resync state after a rejected router navigation and skip no-op history updates (f6067b5)
- Vue Router: when a navigation guard cancels or redirects an update, state now follows the resulting URL
- History:
history: 'push'no longer adds a duplicate entry when the URL does not change - Custom adapters can return
falsefromupdateUrlto signal a rejected update
π Documentation
- Unique page titles and descriptions, canonical URLs, Open Graph / Twitter images, sitemap, robots.txt, local search and a version menu (51e3a41)
- Regenerate the API reference with source links (7ae11cb)
π‘ Chore
- CI: format and publint checks, Node 20/22/24 matrix, and tests against the minimum peer versions (vue 3.3, vue-router 4.2) (51e3a41)
- Add SECURITY.md, a pull request template and Dependabot; update the issue templates, CONTRIBUTING.md and LICENSE; remove legacy config files (51e3a41)
β€οΈ Contributors
- Somraj Mukherjee (@iamsomraj)
v0.2.0
vue-qs is now a port of nuqs for Vue. See the migration guide.
β οΈ Breaking Changes
- Remove
queryRef,queryReactive,createVueQsPlugin, the*Codecserializers and the URL utilities, replaced by the nuqs-style API below (#14) - Adapters are imported from
vue-qs/adapters/historyandvue-qs/adapters/vue-router, and must be installed withcreateVueQs({ adapter }); composables throw when no adapter is provided - Missing keys without a default are
nullinstead ofundefined; invalid values fall back to the default
π Enhancements
- Add
useQueryState, returning a writable ref (works withv-model) with a.set(value | updater | null, options)method returning a promise - Add
useQueryStates, returning a reactive object with$setandurlKeyssupport - Add nuqs parsers:
parseAsString,parseAsInteger,parseAsFloat,parseAsHex,parseAsIndex,parseAsBoolean,parseAsTimestamp,parseAsIsoDateTime,parseAsIsoDate,parseAsStringEnum,parseAsStringLiteral,parseAsNumberLiteral,parseAsArrayOf,parseAsNativeArrayOf,parseAsJson(validator or Standard Schema),createParser,createMultiParser, with.withDefault()and.withOptions() - Add nuqs options:
history,scroll,shallow,clearOnDefault(defaulttrue),limitUrlUpdateswiththrottle()/debounce() - Batch updates made in the same tick into a single URL update
- Keep composables bound to the same key in sync
- Support repeated keys (
?id=1&id=2) - Add
createLoader,createSerializerandcreateStandardSchemaV1, also available Vue-free fromvue-qs/server - Add the testing adapter (
vue-qs/adapters/testing),createAdapterfor custom adapters and theVueQsAdaptercomponent - Debug logging with
localStorage.debug = 'vue-qs'
π©Ή Fixes
- Vue Router adapter now follows every navigation (
router.push,<RouterLink>), not only Back/Forward - History adapter follows
pushState/replaceStatecalls made by other code - Update queues are scoped per adapter, so state no longer leaks between apps or SSR requests
π Documentation
- Rewrite the README and guides: parsers, options, adapters (including Nuxt), server utilities, testing, examples and migration from 0.1.x
β Tests
- Rewrite the test suite: parsers, serializer, loader, update queue, composables, History and Vue Router adapters, and type-level tests
β€οΈ Contributors
- Somraj Mukherjee (@iamsomraj)
v0.1.18
π Enhancements
- Add isUpdating method to QueryAdapter and prevent infinite loops during URL updates (5c47647)
- Enhance package.json and README for clarity and usability (75960a4)
π©Ή Fixes
- Update createEnumCodec to allow undefined values and adjust related tests (28d9815)
π Refactors
- Simplify queryReactive and queryRef APIs (d23e55e)
- Remove unit tests for vue-router adapter, query reactive, query ref, serializers, and core helpers (da5af50)
- Update import paths to use alias for better readability (c46bf58)
π Documentation
- Remove redundant active development notice from README (e4c5161)
π‘ Chore
- Update documentation for vue-qs v0.1.17 (03a7742)
- Update import paths in unit tests and standardize markdown separators (111de7c)
- Update version to 0.1.18-beta.7 and adjust documentation (bc37e2b)
β Tests
- Add comprehensive unit tests for serializers, Vue components, and Vue Router integration (8d1dd83)
- Add unit tests for serializers including string, number, boolean, date, JSON, array, and enum codecs (388f009)
- Add integration tests for BasicQueryRefComponent and QueryReactiveComponent with history and Vue Router support (560b507)
β€οΈ Contributors
- Iamsomraj (@iamsomraj)
- Somraj Mukherjee (@iamsomraj)