首先引入pinia
npm i pinia
在main.js注册使用
import {
createPinia
} from 'pinia'
const pinia = createPinia()
app.use(pinia)
基本上环境搭载完毕
使用的话要新建一个store目录,和vuex类似
创建一个js文件,名字随便起,这里创建了一个user.js,暴露出一个useStore的方法,state是存贮数据的地方,
import {
defineStore
} from 'pinia'
import {
ref
} from 'vue'
export const useStore = defineStore('useStore',{
// 存储数据的地方
state(){
return{
num:0
}
},
actions:{
increment(value){
this.sum += value
}
},
getters:{ //类似于计算属性
bigSum(state){
return state.sum * 10
}
}
})
使用的话就是在vue文件中引入
import {useStore}from '你的store user.js的地址'
使用该store
let stateStore = useStore()
存储的num值,直接用 stateStore.num就能直接访问
修改的话可以用三种方式
第一种 直接修改
function add(){
stateStore.num++
}
第二种 碎片化 $patch 直接更改pinia中的sum值
function change (){
stateStore.$patch({
sum:66
})
}
第三种 actions
actions放置的是一个一个的方法,用于响应组件的"动作"
function change (){
stateStore.increment(1)
}