Smile_ping 2024-03-08 18:04 采纳率: 0%
浏览 107

uniapp computed使用,急。

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

目前:

img

预期:

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-08 18:04
    关注

    引自免费微信小程序:皆我百晓生

    在 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,还可以结合外部方法进行复杂的计算逻辑。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月8日