vx-refactor
TypeScript icon, indicating that this package has built-in type declarations

1.0.5 • Public • Published
  • vx-refactor 由来

    命名:

    vx 为vuex的读音缩写。refactor 意为重构。整合起来,就是对原生vuex的重构。

    解决的问题:

    注入方式 调用方式
    原生 vuex 需大量注入模块 原生 vuex 调用 action & mutation 需配合 dispatch & commit 等方法

    vx-refactor 只需调用 connect 方法便可自动注入

    vx-refactor 面向对象调用。如:models.setFn[调用的方法]
  • 安装

    $ npm install vx-refactor or yarn add vx-refactor;

  • 使用方法

    示例代码的目录如下:

    ├── index.scss ├── index.vue └── model.js

    1. 在 main.js 中注入 store 实例。

    import vxRefactor from "vx-refactor";
    
    vxRefactor(store);

    2. 在业务 model 中用 connect 方法进行改造。

    import { connect } from "vx-refactor";
    
    export const ns = "namespace";
    const state = {
      count: 0,
    };
    
    const mutations = {
      addCount(state, payload) {
        state.count = payload;
      },
    };
    
    const actions = {
      setCount({ commit }, params) {
        commit("addCount", params);
      },
    };
    
    const getters = {
      getCount(state) {
        return state.count;
      },
    };
    
    export default connect({
      ns,
      state,
      mutations,
      actions,
      getters,
    });

    3. 在业务页面中调用。

    import models, {ns} from './model'; // 引入当前业务所在的model
    
     computed: {
        ...mapState(ns, ['count'])
     },
    
     methods: {
        introduce() {
          // 支持选传第二个参数options。允许在命名空间模块里分发根的 action
          models.setCount(2) || models.setCount(2, {root: true});
          models.commit.addCount(3|| models.commit.addCount(3, {root: true});
        }
     }

    写在最后:

    使用vuex,在模块注入及调用上需要遵守vuex约定的方式。eg:this.$store.commit or this.$store.dispatch。而vx-refactor只关注模块中的方法,直接采用内置暴露对象models进行调用。eg: models.setFn。vx-refactor中connect方法实现了真正的按需引入。换句话说:不论你的model层写在何处,只要你调用connect方法对你的model进行处理。那么它将自动引入到store中进行管理。且对于命名空间需手动开启namespaced: true 引入时需再次为模块的具名。而vx-refactor只需在模块中export一个空间名称即可实现全局或私有模块的识别并支持分别调用。使其实现真正意义上的“模块化”。

Package Sidebar

Install

npm i vx-refactor

Weekly Downloads

1

Version

1.0.5

License

MIT

Unpacked Size

19.1 kB

Total Files

7

Last publish

Collaborators

  • pengo.c