vue3的计算属性computed传参问题
介绍: 解决computed传参问题
代码:
import { computed } from 'vue'
export function useComputed(fn) {
return function (...args) {
const map = new Map()
const key = JSON.stringify(args)
if (map.has(key)) {
return map.get(key)
}
const result = computed(() => fn(...args))
map.set(key, result)
return result
}
}
使用:
<template>
<li v-for="(item, index) in 100" :key="index">{{ myComputed(item) }}</li>
</template>
<script>
import { useComputed } from "./useComputed";
const setValue = item => {
return item.price * item.count;
};
const myComputed = useComputed(setValue);
</script>
<style>
</style>