Vue3使用Pinia

news/2024/7/24 11:14:34 标签: javascript, vue.js, 前端

1.安装

npm i pinia

 2.搭建架子文件

2.1main.js

javascript">
import { createApp } from 'vue'
// 引入pinia
import { createPinia } from 'pinia'

import App from './App.vue'
import router from './router'
// 创建pinia
const app = createApp(App)
//安装pinia
app.use(createPinia())

app.use(router)

app.mount('#app')

2.2index.js

javascript">import {userStore} from "@/stores/modules/user.js";

export  const useStore=()=>{
    return {
        user:userStore()
    }
}

2.3user.js 

javascript">
import { defineStore } from 'pinia'

export const userStore = defineStore('user', {
    state(){
        return{
            sum:6
        }
    },
    actions:{
        modifySum(param1,param2){
            console.log(param1,param2)
           return  this.sum++
        }
    },
    getters:{
        // 想用this就不能用箭头寒素
        bigSum(state){
            return  this.sum*10
        }
        // bigSum:(state)=>state.sum*10
    }

})

3.测试Demo 

javascript"><script setup>
import {useStore} from "@/stores/index.js"
import {storeToRefs} from "pinia";


const countStore = useStore()
// storeToRefs只会关注store里面的数据,而不像toRefs包裹所有的东西。
const {sum} = storeToRefs(countStore.user)

// 解构countStore会失去响应式

function modify1() {
  // 修改数据方式1
  countStore.user.sum = 5
}
// 修改数据2 (有误)
// function modify2(){
//   countStore.$dispose({
//     user:{
//       sum:9
//     }
//
//   })
// }
// 修改数据3
function modify3() {
  // 这边写几个参数,对应的actions里面就可以接受几个参数
  countStore.user.modifySum("启动1", "启动2")
}

</script>

<template>
  <div>
    <div @click="modify3">demo</div>
<!--      都可以拿到sum的值-->
      <div>pinia里面的值{{countStore.user.sum}}</div>
      <div>pinia里面的值{{countStore.user.$state.sum}}</div>
    <div>pinia里面的值{{ sum }}</div>
  </div>
</template>

 


http://www.niftyadmin.cn/n/5309385.html

相关文章

Python基础入门第七课笔记(自定义函数 define)

函数 函数必须先定义再调用 函数必须先定义再调用 函数必须先定义再调用 定义函数&#xff1a; def 函数名&#xff08;形参&#xff09;&#xff1a; 代码1 代码2 ………. 调用函数&#xff1a; 函数名&#xff08;实参&#xff09; 形参&…

vue3 里的 ts 类型工具函数

目录 前言一、PropType\<T>二、MaybeRef\<T>三、MaybeRefOrGetter\<T>四、ExtractPropTypes\<T>五、ExtractPublicPropTypes\<T>六、ComponentCustomProperties七、ComponentCustomOptions八、ComponentCustomProps九、CSSProperties 前言 相关 …

修复HTTP动词篡改导致的认证旁路问题的方法

本文于2016年4月完成&#xff0c;发布在个人博客网站上。 诡异的问题 分析AppScan扫描报告的时候&#xff0c;发现报告里提示“HTTP动词篡改导致的认证旁路”&#xff0c;一个名字很长&#xff0c;很怪异的问题。咨询度娘没有获取到必要的信息&#xff0c;于是只好按照AppScan…

简易机器学习笔记(九)LeNet实例 - 在眼疾识别数据集iChallenge-PM上的应用

前言 上一节大概讲了一下LeNet的内容&#xff0c;这一章就直接来用&#xff0c;实际上用一下LeNet来进行训练和分类试试。 调用的数据集&#xff1a; https://aistudio.baidu.com/datasetdetail/19065 说明&#xff1a; 如今近视已经成为困扰人们健康的一项全球性负担&…

STL——vector详解

目录 &#x1f4a1;基本概念 &#x1f4a1;存放内置数据类型 &#x1f4a1;存放自定义数据类型 &#x1f4a1;存放自定义数据类型指针 &#x1f4a1;vector容器嵌套容器 &#x1f4a1;vector构造函数 &#x1f4a1;vector赋值操作 &#x1f4a1;vector容量和大小 &…

css颜色样式详解

颜色样式 HEX颜色 概念&#xff1a;在CSS中&#xff0c;用#RRGGBB规定十六进制颜色 RR(红色)&#xff0c;GG&#xff08;绿色&#xff09;&#xff0c;BB&#xff08;蓝色&#xff09;为十六进制整数指定颜色的成分&#xff08;分量&#xff09;。 注意&#xff1a;所有值必须…

7-35 有理数均值 分数 20

每日一言 我们把世界看错&#xff0c;反说它欺骗了我们。 --飞鸟集 题目 本题要求编写程序&#xff0c;计算N个有理数的平均值。 输入格式&#xff1a; 输入第一行给出正整数N&#xff08;≤100&#xff09;&#xff1b;第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的…

Landsat8的辐射定标与大气校正

目录 打开影像辐射定标大气校正计算区域高程计算研究区高程大气校正查看处理结果 打开影像 在文件夹中找到xxx_MTL.txt文件&#xff0c;拖到ENVI中 此处可能会出现无法打开的问题&#xff0c;参考该文章&#xff08;ENVI无法打开Landsat8的头文件问题和解决&#xff09; 辐…