vuex-router-sync v5.0.0
Vuex Router Sync
:fire: HEADS UP! You're currently looking at Vuex Router Synx 6 branch which supports Vue 3. If you're looking for Vuex Router Sync 5 for Vue 2 support, please check out master branch.
Sync Vue Router's current $route as part of Vuex store's state.
Usage
npm install vuex-router-sync@nextimport { sync } from 'vuex-router-sync'
import store from './store' // vuex store instance
import router from './router' // vue-router instance
const unsync = sync(store, router) // done. returns an unsync callback fn
// bootstrap your app...
// during app/Vue teardown (e.g., you only use Vue.js in a portion of your app
// and you navigate away from that portion and want to release/destroy
// Vue components/resources)
unsync() // unsyncs store from routerYou can optionally set a custom vuex module name:
sync(store, router, { moduleName: 'RouteModule' } )How does it work?
It adds a
routemodule into the store, which contains the state representing the current route:store.state.route.path // current path (string) store.state.route.params // current params (object) store.state.route.query // current query (object) ...When the router navigates to a new route, the store's state is updated.
store.state.routeis immutable, because it is derived state from the URL, which is the source of truth. You should not attempt to trigger navigations by mutating the route object. Instead, just call$router.push()or$router.go(). Note that you can do$router.push({ query: {...}})to update the query string on the current path.
License
5 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago