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

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

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

什么是 Pinia

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

pinia 与 vuex 的区别:

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

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

立即学习“前端免费学习笔记(深入)”;

不再有modules的嵌套结构

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

如何使用 Pinia

1、安装 pinia

yarn add pinia

登录后复制

2、创建一个pinia

// src/stores/index.jsimport { createPinia } from "pinia";const pinia = createPinia()export default pinia

登录后复制

//main.jsimport 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 < state.vagetabel.length; i++) {          const vagetabel = state.vagetabel[i]          if (vagetabel.id === id) {            return vagetabel          }        }      }    },    // 4.访问其他store中的Getters    showMessage(state) {      // 获取user信息      const useStore = useUser()      // 获取自己的state      // 拼接信息      return `name:${useStore.name} - count:${state.count}`    }  }

登录后复制

image-20220812181122665

认识和定义 Action

Action 可以理解成组件中的 methods ,和getters一样,在action中可以通过this访问整个store实例的所有操作。

image-20220813121159762

Action 是支持异步操作的,所以可以使用 await。

image-20220813121241994

更多编程相关知识,请访问:vue!!

以上就是认识Vue新一代的状态管理库–Pinia的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3231488.html

(0)
上一篇 2025年4月1日 16:55:50
下一篇 2025年2月24日 12:35:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 【整理总结】详解Vue3的11个知识点

    本篇文章总结分享vue3学习笔记,深入了解vue3的11个知识点,希望对大家有所帮助! 《Vue3+Node+Webpack+API 商城项目工程化实战开发课!》 一、为什么选择CompositionAPI Vue2的局限性 组件逻辑膨胀导…

    2025年4月1日 编程技术
    100
  • 一文深入详解Vue路由:vue-router

    本篇文章带大家详解vue全家桶中的vue-router,了解一下路由的相关知识,希望对大家有所帮助! 前端路由的发展历程 路由的概念在软件工程中出现,最早是在后端路由中实现的,原因是web的发展主要经历了这样一些阶段: 后端路由阶段;前后端…

    2025年4月1日 编程技术
    100
  • 带你使用Vue搞定无法解决的“动态挂载”

    在一些特殊场景下,使用组件的时机无法确定,或者无法在Vue的template中确定要我们要使用的组件,这时就需要动态的挂载组件,或者使用运行时编译动态创建组件并挂载。 今天我们将带大家从实际项目出发,看看在实际解决客户问题时,如何将组件进行…

    2025年4月1日 编程技术
    100
  • Vite学习之深度解析“依赖扫描”

    本篇文章带大家深入地讲解vite中的依赖扫描的实现细节,最终的扫描结果是一个包含多个模块的名字的对象,不涉及预构建的过程、预构建产物如何是使用的。 当我们首次运行 Vite 的时候,Vite 会执行依赖预构建,目的是为了兼容 CommonJ…

    2025年4月1日 编程技术
    100
  • 一文聊聊Vue中的常用内置指令【大全】

    本篇文章对vue所有的内置指令进行回顾总结,前面先说明一些常用指令,不常用的放在后面。 0. 插值表达式 说明:插值表达式也叫Mustache语法(即双大括号),双大括号标签会被替换为相应组件实例中 msg 属性的值。同时每次 msg 属性…

    2025年4月1日
    100
  • 分享两个可以绘制 Flowable 流程图的Vue前端库

    之前发了一篇文章和小伙伴们介绍了前端的 bpmn.js 这个库,利用这个库我们可以自己将绘制流程图的功能嵌入到我们的项目中。 然而,这个库默认是给 Camunda 设计的,所以画出来的流程图导出来的 XML 文件无法直接使用,必须要做一些深…

    2025年4月1日 编程技术
    100
  • 聊聊怎么用Vue3构建Web Components

    如何使用 vue3 构建 web components?下面本篇文章给大家介绍一下用 vue3 构建 web components的方法,希望对大家有所帮助! 有时候想写一个无关框架组件,又不想用原生或者 Jquery 那套去写,而且还要避…

    2025年4月1日 编程技术
    100
  • 实例详解,带你玩转 Vue 动画

    vue为我们提供了很多动画接口方便我们实现动画效果,过渡动画可以实现一些简单的动画,如果一个动画包含几个简单的动画这个时候就需要使用动画钩子了。本文列出了几个例子,都是日常开发中经常遇到的。 在开发 ToC 项目中,需要用到很多动画,比如常…

    2025年4月1日 编程技术
    100
  • Vue实战:利用自定义指令实现鼠标拖动元素效果

    本篇文章分享一个vue实战,介绍下使用vue的自定义指令实现鼠标拖动元素的效果以及解决移动端适配的问题。 核心属性 Element.clientWidth:元素可视宽度。Element.clientHeight:元素可视高度。MouseEv…

    2025年4月1日
    100
  • 聊聊vue3中的name属性,看看怎么使用!

    如果你在 vue3 开发中使用了 对于 vue@3.2.34 及以上版本,在使用 组件的 name 属性不仅能用于 ,而且在使用 vuejs-devtools 插件调试代码的时候,对应组件也能显示出其 name 属性,方便我们快速定位代码和…

    2025年4月1日
    100

发表回复

登录后才能评论