javascript - 如何只运行一次 vue 计算属性?

标签 javascript vue.js vuex

我有一个填充数组的计算属性,但是我之后正在使用该数组(从&插入它)并且我希望一旦数组为空,就保持为空(所说的计算属性不会再次填充它) )。我怎样才能做到这一点?我使用计算属性是因为我通过 getter 从 Vuex 存储中获取数据。 这是有问题的属性:

populateAvailableMachines() {
  Object.values(this.userData).forEach(user => {
    if (this.$auth.user().id == user.id) {
      if (this.availableMachines.length == 0) {
        Object.keys(user.machine).forEach(key => {
          this.availableMachines.push(user.machine[key].machine_name);
        });
      }
    }
  });
},

这是推送/拼接的方法:

addMachineTab(item) {
  let index = this.availableMachines.indexOf(item);
  this.selectedMachines.push(this.availableMachines.splice(index, 1));
},

我想要实现的是,一旦可用机器数组中的所有值都移动到选定的机器数组,而不是重新运行填充空的可用机器数组的计算属性。

最佳答案

不建议让计算属性产生任何副作用,例如数据变异。 最好将 populateAvailableMachines 函数移动到方法中并仅调用它一次(例如在安装时)。

关于javascript - 如何只运行一次 vue 计算属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57606027/

相关文章:

javascript - 色键效果如何准确过滤RGB值

django - 使用 Vue.js、Django Rest Framework 作为后端和/api/在同一服务器上配置 Nginx?

javascript - 在 Vuex 中存储敏感数据

javascript - Vuex:处理复杂对象和状态改变函数

javascript - 当 ID 设置为未在任何地方预定义的名称时删除 Firestore 文档

vue.js - 使用vuex的vue 2 JS中的axios拦截器

javascript - Vue i18N SAP 多语言最佳实践?

javascript - 如何动态地将值插入表中..?

javascript - JSON数据从表格格式转换为JSON?

javascript - Nuxt页面HTML在数据之前加载