web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 地图大全
  5. AIGC工具
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站
    手机应用

Vue3怎么运用pinia状态管理工具

884 ℃

pinia是vue3新的状态管理工具,Vue3新的状态管理工具简单的等同于以前的vuex。它去除了突变,但也支持vue2,这是强烈推荐的。因为它的标志看起来像一个菠萝,我们也叫它大菠萝。

安装脚手架

npm i pinia

在mian.js文件中引入pinia,全局注册

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
  
const app = createApp(App)
app.use(createPinia())
app.mount('#app')

store文件夹新建 index.js 文件

import {defineStore} from 'pinia'
export const useUserStore = defineStore("USER",{
  state() {
    return {
      name: '小米',
      age: 23,
      name1: '小花',
      age1: 21
    }
  },
  // 和vuex一样
  getters: {
  
  },
  // 和vuex一样
  actions: {
    setAge() {
      this.age--
    }
  }
})

页面中使用pinia中存储的状态

<template>
  <div>正常取值</div>
  <div>{{User.name}}</div>
  <div>{{User.age}}</div>
  <div>解构取值</div>
  <div>{{name}}</div>
  <div>{{age}}</div>
  <div>解构取值转ref</div>
  <div>{{name1}}</div>
  <div>{{age1}}</div>
  <button @click="change1">change1</button>
  <button @click="change2">change2</button>
  <button @click="change3">change3</button>
  <button @click="change4">change4</button>
  <button @click="change5">change5</button>
  <div>
    <button @click="handleReset">重置</button>
  </div>
</template>
  
<script setup lang="ts">
import { storeToRefs } from 'pinia';
import { useUserStore } from './store';
  
// 获取store中的值
let User = useUserStore()
  
// 通过ES6的结构取值,但是这个值不是响应式的
let {name,age} = User
  
// 通过pinia自带的方法,转换成ref,就是响应式的了
let {name1,age1} = storeToRefs(User)
  
// 改变store中值的方式有五种

// 方式一
function change1() {
  User.age++
}

// 方式二,可一次性修改多个值,对象的形式
function change2() {
  User.$patch({
    name: '雪见',
    age: 17
  })
}

// 方式三,可一次性修改多个值,函数的形式
function change3() {
  User.$patch((state) => {
    state.name = '徐长卿'
    state.age = 19
  })
}

// 方式四,哪怕修改一个值,也要传所有值???
function change4() {
  User.$state = {
    name: '茂茂',
    age: 16,
    name1: '李逍遥',
    age1: 18
  }
}

// 方式五,借助actions
function change5() {
  User.setAge()
  //也可以传参
  // User.setAge(999)
}
  
// 重置数据
function handleReset() {
  User.$reset()
}
</script>

Pinia与Vuex的区别(在选择状态管理库时,哪个更优)

盘点vue3的各种生命周期

如何在Vue3中使用watch监控一个对象的属性值

Vue3中文官网介绍

vue3语法如何利用mitt实现兄弟组件传值

标签: pinia状态管理工具 vue3语法

上面是“Vue3怎么运用pinia状态管理工具”的全面内容,想了解更多关于 vuejs 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_4811.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 首页 > vuejs
Trae:新一代免费的AI编程工具

呱呱工具箱

一款免费的在线小工具,无需下载,打开即可使用!呱呱工具箱

在线育儿补贴计算器

快来看看你到底可以领到多少补贴!生活小工具
上一篇:
下一篇:
x 打工人ai神器