defineStore — creates a store.
Options API style:
1import { defineStore } from "pinia"23export const useUserStore = defineStore("user", {4 state: () => ({5 name: "John",6 age: 257 }),8 getters: {9 fullName: (state) => `${state.name} Doe`10 },11 actions: {12 async fetchUser() {13 const res = await fetch("/api/user")14 this.name = res.name15 }16 }17})
Composition API style:
1import { defineStore } from "pinia"2import { ref, computed } from "vue"34export const useUserStore = defineStore("user", () => {5 const name = ref("John")6 const fullName = computed(() => `${name.value} Doe`)78 async function fetchUser() {9 const res = await fetch("/api/user")10 name.value = res.name11 }1213 return { name, fullName, fetchUser }14})