// src/stores/modules/count.ts
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useCountStore = defineStore('count', () => {
const count = ref(0)
function inc() {
count.value += 1
}
function dec() {
count.value -= 1
}
return {
count,
inc,
dec,
}
}, {
persist: {
enabled: true,
detached: true, // Detach subscription from component
},
})
<script setup lang="ts">
import { storeToRefs } from 'pinia'
import { useCountStore } from '@/stores/modules/count'
const { inc, dec } = useCountStore()
const { count } = storeToRefs(useCountStore())
</script>
<template>
<div my-4>
<div mb1 text-gray:80>
Data is stored and persisted via pinia.
</div>
<div flex="~ items-center">
<u-button h="!6" w="!12" type="success" text="-" @click="dec" />
{{ count }}
<u-button h="!6" w="!12" type="success" text="+" @click="inc" />
</div>
</div>
</template>