今天看了一段uniapp代码,其中看到 computed,直接调用外部方法,并且传入 store的Getters,脑子一转,如果希望在 computed 中还要写其他方法时,应该怎么写?哪位分享下。
目前:

预期:

今天看了一段uniapp代码,其中看到 computed,直接调用外部方法,并且传入 store的Getters,脑子一转,如果希望在 computed 中还要写其他方法时,应该怎么写?哪位分享下。
目前:

预期:

关注引自免费微信小程序:皆我百晓生
在 UniApp 中,computed 属性用于计算基于响应式依赖的属性值。你提到的情况是希望在一个 computed 属性中调用外部方法,并结合 Vuex 的 store getters 来计算结果。下面是一个详细的示例来演示如何实现这个需求:
假设你有一个 Vuex store,其中包含一个 getter:
// store/index.js
const store = new Vuex.Store({
state: {
// ...
},
getters: {
someGetter: state => {
return state.someValue;
}
},
// ...
});
然后在你的组件里,你可以创建一个 computed 属性,并在这个属性中调用外部方法,同时传入 store getters:
// components/YourComponent.vue
<template>
<!-- ... -->
</template>
<script>
import { mapGetters } from 'vuex';
export default {
computed: {
// 定义一个 computed 属性,它会调用外部方法并使用 store 的 getter
customComputedValue() {
// 引入并映射所需的 getter 到局部计算属性
const { someGetter } = this.$store.getters;
// 假设我们有一个外部方法,名为 'externalMethod'
function externalMethod(valueFromGetter) {
// 这里可以对 valueFromGetter 进行进一步处理
let processedValue = valueFromGetter * 2; // 示例操作
// 返回处理后的值
return processedValue;
}
// 调用外部方法,并将 getter 值作为参数传递
return externalMethod(someGetter);
}
},
// 使用 mapGetters 将 store getters 映射为计算属性(如果需要其他 getters)
computed: {
...mapGetters([
// 'anotherGetter' // 如果你需要其他 getters 可以在这里添加
])
},
// ...
};
</script>
通过上述方式,你在 customComputedValue 计算属性中不仅可以使用 Vuex store 的 getter,还可以结合外部方法进行复杂的计算逻辑。