pinia 修改state

复制代码
<template>
<div @click="change">
  直接通过实例.就可以获取
  {{ store.count }}---- {{ store.sex }}
</div>
</template>

<script setup lang='ts'>
import { useStore } from '../store'
// defineStore返回的是个hook,需要实例化
const store = useStore()
const change = () => {
  // 第一种方式,直接修改
  // store.count++

  // 第二种方式,通过patch的对象修改
  // store.$patch({ count: 3 })

  // 第三种方式,通过patch的函数修改
  // store.$patch((state) => {
  //   state.count = 3
  // })

  // 第四种方式,通过$state修改
  // store.$state.count = 3

  // 第五种方式,通过$state赋值会完全覆盖,且属性必须完全一致
  // store.$state = {
  //   count:4,
  //   sex:'男'
  // }

  // 第六种方式,通过调用action的方式
  // store.increment()
  store.updataCount(5) // 通过传参的方式
}
</script>

<style scoped lang='scss'>

</style>
复制代码
复制代码
import {defineStore} from 'pinia'
import {StoreName} from './store-name'
// StoreName是id,用于区分不同的store,自定义即可
export const useStore = defineStore(StoreName.Test, {
  state: () => ({
    count: 0,
    sex: '顶顶顶'
  }),
  getters: {

  },
  actions: {
    increment() {
      this.count++
    },
    // 不可以写箭头函数,否则指向不正确
    updataCount(count: number) {
      this.count = count
    }
  },
})
复制代码

 

posted on   ChoZ  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2023-02-22 Vue3中使用JSX简明语法
2023-02-22 TS补充笔记

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示