【Vue3】pinia管理数据的三种方式

举报
小馒头学Python 发表于 2024/03/24 10:14:47 2024/03/24
【摘要】 文章目录🍋第一种🍋第二种🍋第三种🍋总结🍋第一种我们首先将需要的代码文件呈现一下<template><div class="count"> <h2>当前求和为:{{ countStore.sum }}</h2> <h3>欢迎来到:{{ countStore.school }},坐落于:{{ countStore.address }}</h3><select v-model...


🍋第一种

我们首先将需要的代码文件呈现一下

<template>
<div class="count">
    <h2>当前求和为:{{ countStore.sum }}</h2>
    <h3>欢迎来到:{{ countStore.school }},坐落于:{{ countStore.address }}</h3>
<select v-model.number="n">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>
    <button @click="_add">加</button>
    <button @click="_jian">减</button>
</div>
</template>
<script setup lang='ts' name="Count">
    import {ref} from 'vue'
    import {useCountStore} from '@/store/Count'
    const countStore = useCountStore()
    let n = ref(1)

    function _add(){
  
    function _jian(){
        
    }


</script>
<style scoped>
  .count {
    background-color: skyblue;
    padding: 10px;
    border-radius: 10px;
    box-shadow: 0 0 10px;
  }
  select,button {
    margin: 0 5px;
    height: 25px;
  }
</style>

还有Count.ts

import {defineStore} from 'pinia'

export const useCountStore = defineStore('Count',{
  // 真正存储数据的地方
  state(){
    return {
      sum:2,
      school:'北京大学',
      address:'北京'
    }
  }
})

第一种修改方式属于拿到就可以修改

countStore.sum+=n.value

🍋第二种

第二种修改方式是,适用场景是很多数据需要同时的变更

countStore.$patch({
          sum:888,
          school:'清华大学',
          address:'北京'
        }) 

🍋第三种

第三种方法是使用action
在Count.ts中将action写好

actions:{
    increment(value){
      if( this.sum < 10){
        // 修改数据(this是当前的store)
        this.sum += value
      }
    }
  }

再回到Count.vue加一行

countStore.increment(n.value)

这样就可以修改了
请添加图片描述

🍋总结

以上就是在Vue3中使用Pinia管理数据的三种方式

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。