·

(GPT-4)在 Vue.js 中,computed 属性是不接受参数的。computed 属性是基于它们的响应式依赖进行缓存的。一个 computed 属性的值只有在它的相关依赖发生改变时才会重新计算。

如果你需要进行参数化计算,一种可行的方式是在 computed 属性中返回一个函数,然后在你的模板或者方法中调用这个函数并传入参数。

例如:

javascript

Copy

computed: {
  parametricComputation() {
    return (param1, param2) => {
      // Perform computation with param1 and param2
    }
  }
}

然后在模板中:

html

Copy

<div>{{ parametricComputation(arg1, arg2) }}</div>

或者在方法中:

javascript

Copy

methods: {
  someMethod() {
    var result = this.parametricComputation(arg1, arg2);
    // Do something with result
  }
}

但请注意,这种方式并不会缓存结果。每次调用这个函数,都会重新进行计算。如果你需要缓存结果,可能需要自己实现一种方式,或者考虑使用其他库(例如 lodash 的 _.memoize 方法)。

另外,methods 和 watch 也是常用的处理参数化计算的方法,但同样,这两种方法也不会缓存结果。

Replies
2

当然,AI的这个回答有可能是基于vue2或者什么以前的版本的,最新的版本有可能支持接收参数运算,但我不知道

可以了,我在computed中使用了闭包,在return的function中加了参数。使用是正常的