Vue / Vuex plugin providing a unified path syntax to Vuex stores

Overview
Pathify makes working with Vuex easy, with a declarative, state-based, path syntax:

Paths can reference any module, property or sub-property:

Pathify's aim is to simplify the overall Vuex development experience by abstracting away Vuex's complex setup and reliance on manually-written code. The path syntax does the heavy-lifting, with a small set of helper functions used to directly access or wire up components to the store.
Examples
Get or set data without syntax juggling or worrying about implementation:
store.get('loaded')
store.set('loaded', true)
Reach into sub-properties and arrays:
store.get('products@items.0.name')
store.set('products@items.1.name', 'Vuex Pathify')
Set up one or two-way data binding on any store value without bloat or fuss:
computed: {
products: get('products'),
category: sync('filters@category')
}
Wire multiple properties (or sub-properties) using array, object and wildcard formats:
computed: {
...sync('filters@sort', [
'order',
'key'
]),
...sync('filters@sort', { sortOrder: 'order', sortKey: 'key' }),
...sync('filters@sort.*') }
Use variable expansion to dynamically reference store properties:
computed: {
product: get('products@items:index')
}
Set up mutations โ including sub-property mutations โ in a single line:
make.mutations(state)
Results
In practical terms, Pathify results in:
- less cognitive overhead
- zero store boilerplate
- one-liner wiring
- cleaner code
- lighter files
To see the principles behind such radical code reduction, check out the Pathify 101.
Next steps
Get started:
Demos: