• Stars
    star
    1,393
  • Rank 33,729 (Top 0.7 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

splash

Overview

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

pathify-diagram

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

pathify-diagram

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('[email protected]')
store.set('[email protected]', '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

The code comparison demo demonstrates reductions in lines of code of between 2 and 14 times (or more) depending on store size and setup.

To see the principles behind such radical code reduction, check out the Pathify 101.

Next steps

Get started:

Demos:

More Repositories

1

javascript-state-machine

An expressive, feature-rich, event-driven JavaScript finite-state machine
JavaScript
345
star
2

laravel-sketchpad

An innovative front-end environment for interactive Laravel development
PHP
300
star
3

alias-hq

The end-to-end solution for configuring, refactoring, maintaining and using path aliases
JavaScript
297
star
4

vue-class-store

Universal Vue stores you write once and use anywhere
JavaScript
276
star
5

nuxt-areas

Simple and scalable folder management for large Nuxt projects
JavaScript
231
star
6

axios-actions

Bundle endpoints as callable, reusable services
TypeScript
189
star
7

vue-trello-clone

A simple Trello clone
JavaScript
151
star
8

xjsfl

Rapid development framework for extending Adobe Flash
JavaScript
135
star
9

todo-emojis

Track todos in Slack using custom checkbox emojis
90
star
10

maxscript

Various MaxScripts and plugins created from 2001 - 2008
MAXScript
85
star
11

vee-element

Replaces Element UI's validation engine with Vee Validate
JavaScript
73
star
12

classic-shell-win10

A Windows 10 theme for Classic Shell / Classic Start Menu
HTML
60
star
13

great-suspender-recovery-tool

Recover your lost Great Suspender Tabs
JavaScript
56
star
14

nuxt-content-assets

Enable locally-located assets in Nuxt Content
TypeScript
55
star
15

vue-source

Identifies Vue components in DevTools Elements panel via HTML comments
JavaScript
41
star
16

app-diary

Ongoing development diary of building a Trello clone
JavaScript
32
star
17

got-paper

The official "got paper?" app – a Vue / Nuxt PWA, optimised for mobile, running in 12 languages
Vue
27
star
18

spaceman

Manage monorepo workspaces with a prompt-based CLI
JavaScript
25
star
19

outliner

A node package to outline SVG strokes as fills
JavaScript
24
star
20

minimap-font

An editor font to give you a 10,000ft view of the code
HTML
19
star
21

vuex-pathify-demos

A set of demos for the Vuex Pathify plugin
Vue
16
star
22

vue-enums

Easily use TypeScript enums in Vue SFC templates
JavaScript
11
star
23

vue-class-store-demos

Vue Class Store demos for Vue 2, Vue 3 and Nuxt
Vue
10
star
24

komodo-autocode

Adds extra functionality to Komodo that makes it easier than ever to write (and test) quality code
JavaScript
10
star
25

nuxt-areas-demo-vue2

Demo project to showcase Nuxt Areas functionality
Vue
7
star
26

jquery-populate

6
star
27

alias-quokka-plugin-demo

Demo project to test Quokka local ES6 imports in a scratch file
JavaScript
6
star
28

msal-vue-demo

A minimal but production-friendly Vue 3 / MSAL demo
TypeScript
5
star
29

flash-wowza-demo

OO version of the Wowza record / play demo
ActionScript
4
star
30

jquery-scroll-into-view

jQuery plugin to scroll an element into view
HTML
4
star
31

javascript-ascii

Output objects' structure in text / ASCII format
HTML
3
star
32

laravel-sketchpad-reload

Live-reload functionality for Laravel Sketchpad
JavaScript
3
star
33

flash-core

A robust set of base ActionScript 3.0 classes developed out of commercial projects
ActionScript
2
star
34

i-hate-computers

I hate computers
JavaScript
2
star
35

es-kit

A "pick and mix" library that simplifies writing Elasticsearch code
TypeScript
2
star
36

flat-file-api

A command line tool to mock APIs using flat files
JavaScript
2
star
37

nuxt-scrollbar

Nuxt wrapper for Vue 3 Perfect Scrollbar
Vue
2
star
38

flash-flashywrappers-demo

ActionScript
1
star
39

vuex-pathify-simple-demo

Simple Vuex Pathify standalone demo
JavaScript
1
star
40

php-apidoc

Demo repositoriry for APIDoc with sample API and automatic builds via Grunt
PHP
1
star
41

nuxt-layers-utils

A collection of utilities to work with Nuxt layers
1
star
42

nuxt-sockets

WebSockets solution for Nuxt
TypeScript
1
star
43

laravel-resourcery

A lightweight & flexible resource management system
PHP
1
star
44

handsontable-checkboxes-demo

Demo project to fix focus issues with custom editor
JavaScript
1
star
45

extension-vue-devtools

Webpack plugin to open and connect to external Vue Devtools
JavaScript
1
star
46

wp-template-redirect

Template to simply redirect to another URL, rather than load a post or page
1
star
47

vue-customer-query

Example Vue application
Vue
1
star
48

collection-fns

A set of flexible, type-safe functions to manipulate arrays of models
TypeScript
1
star
49

better-fastmail

UX & UI improvements to the FastMail web client
JavaScript
1
star