pinia基本使用(一)の简单使用
pinia的优点
- 支持vue2、vue3
- 抛弃了Mutations操作,只有state、getters和actions
- 不需要嵌套模块,符合vue3的Composition API
- 完整的TS支持
- 代码更加简洁
- 没有命名空间
基本使用
安装
npm install pinia || yarn add pinia
在main.ts中挂载pinia实例
import {createApp} from 'vue' // 引入createPinia 构造方法 import {createPinia} from 'pinia' import App from './App.vue' // 调用createPinia方法创建pinia实例 const pinia=createPinia() const app=createApp(App) // 通过app.use挂载到全局 app.use(pinia).mount('#app')
创建仓库
(1) 通过pinia提供的defineStore函数创建
(2) defineStore接收两个参数(仓库名称,配置项)
(3) 创建实例后导出import { defineStore } from 'pinia' /** 基本格式: state: 函数返回 getters: 与vuex一致 actions: 取消了上下文参数,通过this获取state和getters里的变量 */ export const mainStore = defineStore( 'main',{ state:( )=>{ return{ count: 0 } }, getters:{ doubleCount(state){ return state.count*2 } }, actions:{ changeCount( ){ this.count +=2 } } } )
使用
定义:在vue组件或ts文件中引入导出的仓库实例<script setup lang="ts"> import { mainStore } from './store/index' const store = mainStore() </script> <template> /* 这里不同于vuex,不需要通过.[属性名]去获取 */ <h1> {{store.count}} </h1> <h1> {{store.doubleCount}} </h1> <button @click="store.changeCount">改变</button> </template>
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!