每秒 Vuex 提交相同操作的速度都很慢

2024-02-16

我正在使用 Vuex V3.0.1 和 Vue.js v 2.5.17

vuex 中的相同操作提交每秒都会很慢。如果我将相同的 axios 请求放入组件内并从组件内调用它,则时间始终在 16 到 22 毫秒之间。然而,当我发送到商店时,每个第二个请求始终超过 300 毫秒。

this.$store.dispatch('getQueryData', {QueryId: this.to.QueryId, params: data, CacheResults : this.to.CacheResults }).then(response => {
    this.options = response.data
        var arr = response.data
        var defaultValue = this.model[this.field.key] || this.field.defaultValue || null
        var valueprop = this.to.valueProp
        var model = {}
        if (defaultValue !== null)
        {
          this.options.forEach(function(value){
              if (value[valueprop] == defaultValue){
                model = value
              }
          })
          this.model[this.field.key] = model
        }
}, error => {
   this.$store.commit('setError', error.response)
   this.options = [];
})

而在我的店里

getQueryData ({commit}, payload) {
  const QueryIdStr = String(payload.QueryId)

  if (store.state.queries[QueryIdStr]) {
    var promise = Promise.resolve({data: store.state.queries[QueryIdStr]})
    return promise
  } else {
    return new Promise((resolve, reject) => {
      axios
        .get('/scadservices/api/tablesv2/Query/' + payload.QueryId + '/data.json', {crossdomain: true, withCredentials: true, params: payload.params})
        .then(response => {
          var output = {
            QueryId: payload.QueryId,
            data: response.data
          }
          if (payload.CacheResults)
          {
            commit('setQueryData', output)
          }
          resolve(response)
        }, error => {
          commit('setError', error.response)
          reject(error)
        })
    })
  }
},

而在我的突变中

setQueryData: (state, payload) => {
  const QueryIdStr = String(payload.QueryId)
  Vue.set(state.queries, QueryIdStr, payload.data)
}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每秒 Vuex 提交相同操作的速度都很慢 的相关文章

随机推荐