Vue 全局状态管理新宠:Pinia实战指南

文章目录


前言

随着Vue.js项目的日益复杂,高效的状态管理变得至关重要。Pinia作为Vue.js官方推荐的新一代状态管理库,以其简洁的API和强大的功能脱颖而出。本文将带您快速上手Pinia,从安装到应用,轻松实现Vue.js项目的全局状态管理,提升开发效率和项目可维护性。


全局状态管理

基本步骤:

clike 复制代码
1.npm install pinia
2.main.js 引入注册
3.src下创建对应状态管理目录store(名不能改变)
4.store中定义user.js
5.在vue中使用

pinia

  • Pinia 是 Vue.js 的一个状态管理库,它提供了一种更简单、更直观的方式来管理 Vue 应用的状态。
  • Pinia是 Vue 的存储库,它允许您跨组件/页面共享状态,与vuex功能一样。

1、安装:
npm install pinia
2、main.js 引入注册:

js 复制代码
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import Axios from 'axios'
// 第一步:引入pinia
import {createPinia} from 'pinia'

var app = createApp(App)
app.config.globalProperties.$axios = Axios

// 第二步:创建pinia
const pinia = createPinia()
// 第三步:向vue中注册安装pinia
app.use(pinia)

app.use(router).mount('#app')

3、src下创建对应状态管理目录store(名不能改变),并定义user.js:

  • 在store中创建对应状态管理对象,定义user.js
  • Store 是使用 defineStore() 定义的,并且它需要一个唯一名称,作为第一个参数传递
  • 这个 name ,也称为 id ,是必要的,Pinia 使用它来将 store 连接到 devtools。 将返回的函数命名为 use... 是跨可组合项的约定
  • // defineStore('user',{}) user就是这个仓库的名称name
    4、pinia在vue中使用:

1) 引入,在需要的vue文件中,引用仓库并获取对象:

  • import {userStore} from '../store/user'
  • let userstore = userStore();

2) 取值方式:

  • userstore.userid

3) 直接修改数据:

  • userstore.userid = x

4) $patch方法修改,修改相应的属性值,修改多个值,状态会统一执行一次:

js 复制代码
//使用$patch方法  以对象的形式一次性修改
const editAll = () => {
  userInfoStore.$patch({
	  username: "鸭蛋",
	  age: 21,
 });

相关推荐
不露声色丶11 分钟前
elementPlus表格二次封装
前端·javascript·vue.js
王天乐00714 分钟前
ElementUI的搭建
前端·javascript·elementui
小秋菇娘18 分钟前
vue 启动项目报错Syntax Error: Error: PostCSS received undefined instead of CSS string
css·vue.js·postcss
OpenTiny社区19 分钟前
7月6日 VueConf 技术大会即将在深圳举办
前端·vue.js·github
前端菜鸟丶Ndie20 分钟前
日期选取限制日期范围antdesign vue
javascript·vue.js·ecmascript
隐藏用户y22 分钟前
探索如何赋予对象迭代魔法,轻松实现非传统解构赋值的艺术
前端·javascript
Zww089130 分钟前
css美化滚动条样式
前端·css·css3
Goat恶霸詹姆斯31 分钟前
uniapp实现图片懒加载 封装组件
前端·javascript·uni-app
佩淇呢35 分钟前
uniapp 使用vite构建项目
前端·vue.js·uni-app
专注成就自我35 分钟前
p标签文本段落中因编辑器换行引起的空格问题完美解决方案
前端·javascript·vue.js·编辑器·html