vuex-facing-decorator

Vue3 alternative solution for vuex-class.
254,012 15
Install
npm install vuex-facing-decorator
Latest Version:1.2.7
Vue:3
License:MIT
Last Updated:Dec 23, 2023
Links: GitHub  ·  npm
Maintainer: zhuyinlin

vuex-facing-decorator

Binding helpers for Vuex and vue-facing-decorator

Designed for vue 3, do the same work like vuex-class.

Welcome to suggest and contribute.

Installation

npm i vuex-facing-decorator

Dependencies

Example

import { h } from 'vue';
import { Component, Vue } from 'vue-facing-decorator';
import { Action, Getter, Mutation, namespace, State } from 'vuex-facing-decorator';

const ModuleA = namespace('A');
const ModuleB = namespace('B');

@Component
class Tests extends Vue {
    // module global
    @State name;
    @State count;
    @Getter doubleCount;
    @Mutation mutationsIncrement;
    @Action actionIncrement;
    // module namespace_a
    @State('name', {namespace: 'A'}) namespace_a_name;
    @State('count', {namespace: 'A'}) namespace_a_count;
    @Getter('doubleCount', {namespace: 'A'}) namespace_a_doubleCount;
    @Mutation('mutationsIncrement', {namespace: 'A'}) namespace_a_mutationsIncrement;
    @Action('actionIncrement', {namespace: 'A'}) namespace_a_actionIncrement;
    // module namespace_b
    @State('name', {namespace: 'B'}) namespace_b_name;
    @State('count', {namespace: 'B'}) namespace_b_count;
    @Getter('doubleCount', {namespace: 'B'}) namespace_b_doubleCount;
    @Mutation('mutationsIncrement', {namespace: 'B'}) namespace_b_mutationsIncrement;
    @Action('actionIncrement', {namespace: 'B'}) namespace_b_actionIncrement;
    // module module_a
    @ModuleA.State('name') module_a_name;
    @ModuleA.State('count') module_a_count;
    @ModuleA.Getter('doubleCount') module_a_doubleCount;
    @ModuleA.Mutation('mutationsIncrement') module_a_mutationsIncrement;
    @ModuleA.Action('actionIncrement') module_a_actionIncrement;
    // module module_b
    @ModuleB.State('name') module_b_name;
    @ModuleB.State('count') module_b_count;
    @ModuleB.Getter('doubleCount') module_b_doubleCount;
    @ModuleB.Mutation('mutationsIncrement') module_b_mutationsIncrement;
    @ModuleB.Action('actionIncrement') module_b_actionIncrement;
    // module a2b
    @ModuleA.State('name', {namespace: 'B'}) a2b_name;
    @ModuleA.State('count', {namespace: 'B'}) a2b_count;
    @ModuleA.Getter('doubleCount', {namespace: 'B'}) a2b_doubleCount;
    @ModuleA.Mutation('mutationsIncrement', {namespace: 'B'}) a2b_mutationsIncrement;
    @ModuleA.Action('actionIncrement', {namespace: 'B'}) a2b_actionIncrement;

    render() {
        return h('div', [
            h('div', {class: 'g'}, this.count),
            h('div', {class: 'namespace_a'}, this.namespace_a_count),
            h('div', {class: 'namespace_b'}, this.namespace_b_count),
            h('div', {class: 'module_a'}, this.module_a_count),
            h('div', {class: 'module_b'}, this.module_b_count),
            h('div', {class: 'a2b'}, this.a2b_count),
        ]);
    }
}

Discussion

To discord https://discord.gg/DWvyAtua99

Related Packages

vuex-class

Binding helpers for Vuex and vue-class-component

3,036,507 1,700
s-vuex-class

Binding helpers for Vuex and vue-class-component

45,169 2
redux-vuex

Redux bindings for VueJS inspired by Vuex.

37,520 40
vuex-module-decorator

Programming vuex module as viewmodle

3,662 0
spyfu-vuex-helpers

Utility functions for Vuex.

2,459 9

Version History

Version Released License
1.2.7 MIT
1.2.6 MIT
1.2.1 MIT
1.2.0 MIT
1.1.0 MIT