1.0.31 • Published 3 years ago

vuex-action-monitor v1.0.31

Weekly downloads
86
License
MIT
Repository
github
Last release
3 years ago

vuex-action-monitor

Build Status NPM Download NPM Version NPM License PRs Welcome Automated Release Notes by gren

Table of Contents

Introduction

vuex-action-monitor is a library that monitor all vuex actions's start and end.

Install

  npm install -S vuex-action-monitor

Use in store

Install and use in store.js:

// store.js or store.ts
import Vue from 'vue'
import Vuex from 'vuex'
import actionMonit from 'vuex-action-monitor'

const actionMonitor = actionMonit({
  log: true,
  key: 'loading',
})
Vue.use(Vuex)

Vue.use(actionMonitor)
const store = new Vuex.Store({
  plugins: [actionMonitor],
  state: {},
  mutations: {},
  actions: {
    async foo(context, payload) {
      await new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve()
        }, 3000)
      })
    },
    async bar(context, payload) {
      await new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve()
        }, 3000)
      })
    },
  },
})

export default store

Use in Component

<template>
  <div class="goodsPage">
    <span>
      {{ $loadingC(['foo', 'bar']) }}
    </span>

    <span>
      {{ $loadingB(['foo', 'bar']) }}
    </span>


    <span>
      {{ $loadingB([['foo', 'bar']]) }}
    </span>

    {{ $store.state.loading.b }} {{ $loadingB('foo') }} {{ $loadingC('foo') }}
  </div>
</template>
<script>
  export default {
    data() {
      return {}
    },
    computed() {
      // you can use methods
      fooLoadingCount() {
        return this.$loadingC("foo");
      },
      // you can use methods
      loadingCBoolean() {
        return this.$loadingB("foo");
      },
      // 你也可以通过此方式拿到真实数据
      // you can use state
      fooLoadingCount2() {
        return this.$store.state.loading.b.foo
      }
      // 你也可以通过 getter 计算
      // you can use getter
      fooLoadingCount3() {
        return this.$store.getters.['loading/stateC']('foo')
      }
    }
  }
</script>
<style scoped></style>

Options

  • log(required: false, default: false): need console log the state or not.
  • key (required: false, default: loading): the key of this module in vuex store.
  • logIgnore (required: false, default: []): the name of log ignore action.

Feature

Then you will have two getters function in any vue components

  • $loadingC: $loadingC(string | string[]) Returns the total of all activie actions.
  • $loadingB: $loadingB(string | string[ string | string [] ]) Returns the boolean of activie actions, if receive a two-dimensional array ,the first dimension's relationship is or the second dimension's relationship is and.

License

MIT

⬆ Back to Top

1.0.31

3 years ago

1.0.29

4 years ago

1.0.28

4 years ago

1.0.27

4 years ago

1.0.25

4 years ago

1.0.24

4 years ago

1.0.23

4 years ago

1.0.21

5 years ago

1.0.20

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

1.0.9

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago