pinia初体验

113 阅读1分钟

1.Pinia简介

Pinia 是一个状态管理工具,和 Vuex 一样为 Vue 项目提供共享状态管理工具。并且支持vue2和vue3,主要是为vue3提供状态管理,支持typescript。Pinia可以创建多个全局仓库,不用像 Vuex 一个仓库嵌套模块,结构复杂。管理数据简单,提供数据和修改数据的逻辑即可,不像Vuex需要记忆太多的API。

2.Pinia使用

1.安装
# or
yarn add pinia
# or
npm i pinia

2.导入使用,当做vue的插件使用

为了在项目中规范化使用,在src下创建目录stores,并创建index.ts文件


const pinia = createPinia()

export default pinia


main.ts中注册pinia

import { createApp } from 'vue'
import pinia from './stores/index'

const app = createApp(App)
app.use(pinia).mount('#app')

stores下创建nodules文件夹,可以分模块使用

import { ref } from 'vue'

type User = {
  id: string
  name: string
  age: number
  gender: string
}

export const useUserStore = defineStore('user', () => {
  // 相当于 vuex 中的 state
  const userInfo = ref<User>({
    id: 'abc',
    name: '张三',
    age: 15,
    gender: '男',
  })

  return { userInfo }
})



index.ts文件中导入,这样就可以在vue文件中使用了

3.使用

在vue文件中引用并使用


const store = useUserStore()

<span>{{ store.userInfo.age }}</span>
<span>{{ store.userInfo.gender }}</span>