Vue利用pinia来完成组件之间的数据共享,可持续化存储要点总结和部分代码

//pinia的使用简单来说就是在一个文件里面写好对应的数据和逻辑代码(js代码),然后在需要的vue组件中import {mapState, mapActions} from 'pinia'和import  Store  from '../store/counter'

//需要注意的是mapState和 mapActions都需要...的写法才可以用,并且mapState是在computed里面写,mapActions是在methods里面写,所以这里的'count','doublecount'代表传递的数值,'add','minus','asyncadd'代表传递的方法

...mapState(Store,['count','doublecount'])

...mapActions(Store,['add','minus','asyncadd'])

//然后还需要注意的就是对应的数据和逻辑代码(js代码)的书写,下面代码这里的state和vue里面data类似,getters和computed类似,  actions和methods类似。

import { defineStore } from 'pinia'

const Store = defineStore('cart', {
    state(){
        return {
            cart:[],
        }
    },
       persist: true,
    getters: {
        totalcount(state){
            return state.cart.reduce((sum,item)=>sum+item.count,0)
        },
        totalprice(state){
            return state.cart.reduce((sum,item)=>sum+item.price*item.count,0)
        }
    },
    actions:{
        addCart(goods){
            const list=this.cart.find(item=>item.id==goods.id)
            if(list){
                list.count++
            }else{
                this.cart.push({
                    ...goods,
                    count:1,
                })
            }
        },
        removeCart(id){
            this.cart=this.cart.filter(item=>item.id!==id)
        }
    }
})

export default Store

//当然还有和vue-router一样操作的js文件,但是相对简单多了,不用多余的配置。直接这样就行

import {createPinia} from 'pinia'

const pinia=createPinia()

export default pinia

//最后在main.js文件中use(pinia)

//如果想在pinia中实现数据的可持续化存储,还可以进行npm i pinia-plugin-persistedstate对应包的下载,然后进行简单的import导入,use,和在对应的js文件persist: true,就可以了

最近更新

  1. TCP协议是安全的吗?

    2024-01-24 17:00:03       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-24 17:00:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-24 17:00:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-24 17:00:03       18 阅读

热门阅读

  1. 深入解析MVCC:多版本并发控制的数据库之道

    2024-01-24 17:00:03       29 阅读
  2. 施工图纸上的常用符号

    2024-01-24 17:00:03       37 阅读
  3. linux批量新增用户、linux批量删除用户

    2024-01-24 17:00:03       31 阅读
  4. Android保存图片到系统图库并通知系统相册刷新

    2024-01-24 17:00:03       34 阅读
  5. k8s面试题

    2024-01-24 17:00:03       35 阅读
  6. Ubuntu20.04安装cuda12.11

    2024-01-24 17:00:03       41 阅读
  7. 给服务器开通telnet的流程

    2024-01-24 17:00:03       30 阅读
  8. Redis常见面试题

    2024-01-24 17:00:03       36 阅读
  9. docker与宿主机数据交换—ROS2

    2024-01-24 17:00:03       31 阅读
  10. k8s---HPA

    2024-01-24 17:00:03       33 阅读
  11. ECS如何安装可视化桌面

    2024-01-24 17:00:03       33 阅读
  12. 致远OA如何开发 第二篇

    2024-01-24 17:00:03       39 阅读