Skip to content

getters的作用有点类似与computed,将数据进行动态计算后返回。

getters的使用

使用箭头函数不能使用this,this指向已经改变指向undefined,修改值请用state,主要作用类似于computed数据修饰并且有缓存

javascript
import { defineStore } from 'pinia'

export const useCounterStore = defineStore({
    id: 'counter',
    state: () => ({
        count: 0,
        name: "cv大魔王"
    }),
    // 修饰一些值,可以理解为computed
    getters: {
        doubleCount: (state) => state.count * 2
    }
})

使用时可以直接使用getters的名称进行调用

vue
<template>
  <van-button type="primary">主要按钮{{ Counter.doubleCount }}</van-button>
</template>

<script setup>
import {useCounterStore} from '@/stores/counter.js'
const Counter = useCounterStore()
</script>

TIP

不得不说,pinia的改动真是改到我心里去了,以前用vuex不爽的点,在pinia中都得到了很好的解决,用起来简直不要太爽。