登录  /  注册
首页 > web前端 > Vue.js > 正文

认识Vue新一代的状态管理库--Pinia

青灯夜游
发布: 2022-08-30 19:56:30
转载
1223人浏览过

什么是pinia?怎么使用?本篇文章就来带大家了解一下vue新一代的状态管理库--pinia,希望对大家有所帮助!

认识Vue新一代的状态管理库--Pinia

什么是 Pinia

Pinia (西班牙语中的菠萝),本质上依然是一个状态管理的库,用于跨组件、页面进行状态共享。【相关推荐:vue.js视频教程

pinia 与 vuex 的区别:

  • 更友好的TypeScript支持,Vuex之前对TS的支持很不友好

  • 与 Vuex 相比,Pinia 提供了一个更简单的 API,具有更少的仪式,提供了 Composition-API 风格的 API

  • 不再有modules的嵌套结构

  • 也不再有命名空间的概念,不需要记住它们的复杂关系

如何使用 Pinia

1、安装 pinia

yarn add pinia
登录后复制

2、创建一个pinia

// src/stores/index.js
import { createPinia } from "pinia";

const pinia = createPinia()

export default pinia
登录后复制
//main.js
import pinia from './stores'

app.use(pinia)
登录后复制

认识 Store

一个 Store (如 Pinia)是一个实体,它会持有为绑定到你组件树的状态和业务逻辑,也就是保存了全局的状态

这样就可以定义任意数量的Store来管理你的状态,包括 state、getters、actions

1. 定义一个store

  • Store 是使用 defineStore() 定义的,

  • 且它需要一个唯一名称,作为第一个参数传递

image-20220812152348346

2. 使用 store

image-20220812152432057

image-20220812154916315

操作 State

state 是 store 的核心部分,store是用来实现我们管理状态的。

image-20220812163115369

  • 方式一:直接一个个修改state
  • 方式二:一次性修改多个状态
  • 方式三:替换state
  • 方式四:重置state

image-20220812165009960

image-20220812165858904

image-20220812170350560

image-20220812170540664

Getters

1. 认识和定义 Getters

Getters相当于Store的计算属性:

  • 可以用 defineStore() 中的 getters 属性定义;
  • getters中可以定义接受一个state作为参数的函数;

2. 访问 Getters

  • 方式一:访问当前 store 的Getters

  • 方式二:Getters 中访问自己的其他Getters

  • 方式三:访问其他的 store 的Getters

getters: {
    // 1. 基本使用
    debouleCount(state) {
      return state.count * 2
    },
    // 2. 一个 getters 引入另外一个 getters
    useDebouleCount() {
      return this.debouleCount + 2
    },
    // 3. getter也支持返回一个函数
    getFriendById(state) {
      return function (id) {
        for (let i = 0; i <p><img src="https://img.php.cn/upload/article/000/000/024/9b758e20089c830456d8b17003d54ea1-8.png" alt="image-20220812181122665"></p><h2><strong>认识和定义 Action</strong></h2><blockquote><p>Action 可以理解成组件中的 methods ,和getters一样,在action中可以通过this访问整个store实例的所有操作。</p></blockquote><p><img src="https://img.php.cn/upload/article/000/000/024/4cc76dfa4ba802a30963e696c1128d1f-9.png" alt="image-20220813121159762"></p><blockquote><p>Action 是支持异步操作的,所以可以使用 await。</p></blockquote><p><img src="https://img.php.cn/upload/article/000/000/024/4cc76dfa4ba802a30963e696c1128d1f-10.png" alt="image-20220813121241994"></p><p>更多编程相关知识,请访问:<a href="https://www.php.cn/course.html" target="_blank" textvalue="编程入门">编程入门</a>!!</p>
登录后复制

以上就是认识Vue新一代的状态管理库--Pinia的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
vue
来源:csdn网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号