vue 计算属性传参数

<view v-for="(item,index) in tabbarList" :key="index">
  <image :src="computeSrc(index,item.selectedIconPath,item.iconPath)" mode="widthFix"></image>
</view>
computed: {
  computeSrc(index,selectedIconPath,iconPath) {
	const src = index === this.currentIndex ? selectedIconPath : iconPath;
	return src;
  }
},

像上面这样传参,会报错提示计算属性不是一个function:
在这里插入图片描述

可以像下面这样写,return一个匿名函数,就可以成功传参啦:

computed: {
  computeSrc() {
	return function(index,selectedIconPath,iconPath) {
		const src = index === this.currentIndex ? selectedIconPath : iconPath;
		return src;
	}
  }
},

(上面的例子在uniapp中写的,本质上和vue一样,所以挂了vue的tag,请勿在意)

原博文:https://www.cnblogs.com/lyzz1314/p/14153813.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 中,可以通过使用 `computed` 函来创建计算属性,同时,也可以通过为 `computed` 函传递参来动态计算属性。 下面是一个简单的示例: ```html <template> <div> <input type="text" v-model="firstName"> <input type="text" v-model="lastName"> <p>Full Name: {{ fullName }}</p> </div> </template> <script> import { computed, reactive } from 'vue'; export default { setup() { const state = reactive({ firstName: '', lastName: '', }); const fullName = computed(() => { return `${state.firstName} ${state.lastName}`; }); return { state, fullName, }; }, }; </script> ``` 在这个示例中,我们创建了两个 `input` 元素来输入用户的名字和姓氏。然后,我们定义了一个 `computed` 函 `fullName`,它返回用户的全名。我们可以在模板中引用 `fullName`,并且它会更新当 `firstName` 或 `lastName` 发生变化时。 另外,我们可以在计算属性中传递参。例如,如果我们想要计算用户的名字的长度,我们可以这样做: ```html <template> <div> <input type="text" v-model="firstName"> <input type="text" v-model="lastName"> <p>Full Name: {{ fullName }}</p> <p>Name Length: {{ nameLength(1) }}</p> </div> </template> <script> import { computed, reactive } from 'vue'; export default { setup() { const state = reactive({ firstName: '', lastName: '', }); const fullName = computed(() => { return `${state.firstName} ${state.lastName}`; }); const nameLength = computed(() => { return fullName.value.length; }); return { state, fullName, nameLength, }; }, }; </script> ``` 在这个示例中,我们定义了一个新的 `computed` 函 `nameLength`,它返回用户的名字长度。我们通过在计算属性中传递参来指定要计算哪个名字的长度。在这种情况下,我们通过传递参 `1` 来计算用户的名字的长度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值