我有一个填充数组的计算属性,但是我之后正在使用该数组(从&插入它)并且我希望一旦数组为空,就保持为空(所说的计算属性不会再次填充它) )。我怎样才能做到这一点?我使用计算属性是因为我通过 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/