vue使用computed有参数_【报Bug】vue计算属性computed计算传参数无法正常拿到返回值...
时间: 2023-06-19 19:04:28 浏览: 136
在Vue中,computed属性是根据它所依赖的属性进行缓存的,只要这些依赖没有发生变化,就不会重新计算。这意味着computed属性不能接受参数,因为它们没有办法观察参数的变化。
如果你需要传递参数给computed属性,可以考虑使用methods方法来代替computed属性。
例如,假设你有一个计算属性可以计算两个数字的和:
```
computed: {
sum() {
return this.num1 + this.num2;
}
}
```
如果你需要计算不同的数字,你可以将这个计算属性改写成一个方法:
```
methods: {
sum(num1, num2) {
return num1 + num2;
}
}
```
然后在模板中调用这个方法:
```
{{ sum(2, 3) }}
```
这样就可以传递参数给方法了。
相关问题
runtime-core.esm-bundler.js:6719 Uncaught TypeError: this.setCheckedArray is not a function at Proxy.payAll (VM454 Cart.vue:63:12) at onClick._cache.<computed>._cache.<computed> (VM452 Cart.vue:86:81) at callWithErrorHandling (runtime-core.esm-bundler.js:6656:1) at callWithAsyncErrorHandling (runtime-core.esm-bundler.js:6665:1) at HTMLSpanElement.invoker (runtime-dom.esm-bundler.js:347:1) payAll @ VM454 Cart.vue:63 onClick._cache.<computed>._cache.<computed> @ VM452 Cart.vue:86 callWithErrorHandling @ runtime-core.esm-bundler.js:6656 callWithAsyncErrorHandling @ runtime-core.esm-bundler.js:6665 invoker报错
这是一个未捕获的 TypeError 异常,提示说 `this.setCheckedArray` 不是一个函数。在 `VM454 Cart.vue` 的第 63 行调用了 `payAll` 方法,该方法中使用了 `setCheckedArray` 函数,但是该函数不存在或者不是 `this` 对象的一个方法。你需要检查 `setCheckedArray` 函数是否已定义,并且确保在 `payAll` 方法中正确地使用了 `this` 对象。
computed计算属性和data_Vue项目中如何使用computed计算属性
在Vue项目中,computed计算属性可以用来处理一些复杂的逻辑计算和数据处理,常常被用来计算和更新DOM中的数据,以及处理表单输入等。
使用computed计算属性需要在Vue组件中定义一个computed对象:
```
<template>
<div>
<p>原始数据:{{ originalData }}</p>
<p>计算后的数据:{{ computedData }}</p>
</div>
</template>
<script>
export default {
data() {
return {
originalData: 'hello'
}
},
computed: {
computedData() {
return this.originalData + ' world'
}
}
}
</script>
```
在上面的例子中,我们定义了一个computed对象,其中包含一个computed属性computedData,它的计算方式是将原始数据originalData与字符串' world'拼接起来。在模板中,我们可以直接使用computedData来显示计算后的数据。
需要注意的是,computed计算属性是基于它所依赖的data属性进行计算的,只有当所依赖的data属性发生变化时,computed属性才会重新计算。这也是computed计算属性和methods方法的区别所在。
阅读全文