首页 > 其他分享 >vue3的 状态管理库

vue3的 状态管理库

时间:2024-08-28 17:03:24浏览次数:12  
标签:状态 Vue 管理 Pinia vue3 组件 Vuex store

1.vue 的状态管理库

vue 常用的状态管理库有 vuex Pinia,两者的区别如下:

  • 架构设计‌:Vuex 采用全局单例模式,通过一个store对象来管理所有的状态;而 Pinia 采用了分离模式,每个组件都拥有自己的store实例。
  • 模块设计:Vuex 包含 states、mutations、getters、actions、modules,mutations用于同步修改状态,actions用于处理异步操作;而 Pinia 没有 mutations,只有 state、getters 和 actions。
  • 语法和使用‌:Vuex 的语法和用法相对传统,对于熟悉Vue 2的开发者来说可能更加熟悉;而 Pinia 的语法比Vuex更容易理解和使用,提供了更好的TypeScript支持,与Vue 3的Composition API紧密结合‌。 ‌
  • 体积和性能‌:Vuex 的体积相对较大,但性能稳定可靠‌;而 Pinia 的体积较小,约1KB,且性能较好,因为它使用了新的ES6语法和新的数据处理方式。 ‌
  • 社区支持和适用场景‌:Vuex 是Vue.js官方出品,社区支持较强,拥有丰富的文档和示例,适合复杂的项目和对状态管理有更高要求的开发者。而 Pinia 在Vue 3的Composition API生态中得到了官方支持,更适合初学者和快速开发项目‌。

  注释:
    Vue 3 匹配 Vuex 4 的文档。 Vue 2 匹配 Vuex 3 的文档;而 Pinia 同时支持 Vue 2 和 Vue 3 。vue3 由于官方支持 Pinia,故本文后面介绍的状态管理库为 Pinia。

    vuex 和 Pinia 的区别,参考:https://blog.csdn.net/qq_41581588/article/details/141062869

 

2. Pinia 简介

  Pinia 是 Vue 的专属状态管理库,同时支持 Vue 2 和 Vue 3。(官网文档主要是面向 Vue 3 用户,但在必要时会标注出 Vue 2 的内容)

  Pinia 让开发者跨组件或页面共享状态。

  Pinia 不强制要求开发者使用组合式 API。

 

3. Pinia 的使用

   注意:以下内容仅适用于 vue3,适用于vue2 的详见 Pinia官网。

 

  3.1 引入:main.js(ts) 文件中写入如下内容

 

  3.2 定义

  (1)组合式写法(推荐)

 

   (2)选项式写法

 

  3.3 访问:组件中使用

 先定义一个 /src/store/demo.js 文件

 然后在 vue3 组件中访问 state、getter、 action 

     注释:
      实际运用中,store 中的 states 尽量是在定义文件的 actions 中进行修改,而非外部组件或其他文件中。(如需在外部组件或其他文件中修改,详见 Pinia 官网)
      为了从 store 中提取属性时保持其响应性,需要使用 storeToRefs(),它将为每一个响应式属性创建引用。

 

 

 

 

翻译

搜索

复制

标签:状态,Vue,管理,Pinia,vue3,组件,Vuex,store
From: https://www.cnblogs.com/bky419/p/18380114

相关文章

  • 金融行业如何增强身份认证和访问管理?
    在瞬息万变的金融行业,数据安全与客户隐私保护已成为企业生存与发展的基石。近年来,随着金融科技的迅猛发展,金融行业面临着前所未有的挑战与机遇。一方面,数字化转型为金融服务提供了更高效、便捷的渠道;另一方面,这也使得金融数据成为不法分子觊觎的目标,身份盗用、欺诈交易等安全问......
  • 外贸管理系统采购销售报关计算机毕业设计VUE/PYTHON/MYSQL
    开发一个基于Vue、Python和MySQL的外贸管理系统,用于处理采购、销售以及报关等业务流程。这样的系统通常涉及前端界面展示、后端逻辑处理以及数据库存储等多个部分。下面是一些关键组件的设计建议:1.技术栈选择前端:Vue.js后端:Python(Flask/Django)数据库:MySQL2.系统......
  • 【Java】多线程创建与管理 (实操图解)
    Java系列文章目录补充内容Windows通过SSH连接Linux第一章Linux基本命令的学习与Linux历史文章目录Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1Thread4.2Runnable五、总结:一、前言多线程入门二、学习内容:实现多线程效果三、问题......
  • 【MySQL数据库管理问答题】第9章 优化查询性能
    目录1.请说明EXPLAIN语句的作用。2.为什么使用索引会比全表扫描可以提供更好的查询性能?3.MySQL数据库是如何自动维护索引统计信息的。4.mysqlcheck客户机程序都有哪些功能?5.在性能分析期间使用InvisibleIndexes有什么好处?6.什么是直方图(histograms),它在使用......
  • 【MySQL数据库管理问答题】第10章 选择备份策略
    目录1.请详细说明热备、温备和冷备的特点和不同。2.在MySQL中支持的备份类型有哪几种,分别予以说明。3.执行逻辑备份要具备哪些条件,其优缺点在哪。4.物理备份一般是用来满足什么样的数据库维护需求?5.基于快照的备份能否用来进行数据库损坏时的恢复,请说明理由。6.......
  • Vue3常见知识**MS【4】
    一、vue2和vue3的区别1、数据绑定原理不同  vue2:数据绑定是利用ES5的一个API:Object.definePropert()对数据进行劫持,结合发布订阅模式的方式来实现的。  vue3:使用了ES6的ProxyAPI对数据代理。相比vue2.x,使用proxy的优势如下:defineProperty只能监听某个属性,不能对......
  • 【MySQL数据库管理问答题】第8章 维护稳定的系统
    目录1.请说明一个稳定的系统的具体含义。2.在确定数据库失败原因时,都要考虑哪些方面的因素?3.如何查看InnoDB表所占用的实际存储空间大小?4.谈谈对数据库进行纵向扩展和横向扩展的适用场合。5.说出在判断一个数据库性能问题时的一般性思路或步骤。6.请对InnoDB......
  • springboot大学生科创项目在线管理系统的设计与实现
    系统包含:源码+论文所用技术:SpringBoot+Vue+SSM+Mybatis+Mysql免费提供给大家参考或者学习,获取资料请私聊我目录目录 III第1章绪论 11.1选题动因 11.2目的和意义 11.3论文结构安排 2第2章开发环境与技术 32.1MYSQL数据库 32.2Tomcat介绍 32.3vue技......
  • IOC/DI注解开发管理第三方bean
    IOC/DI注解开发管理第三方bean前面定义bean的时候都是在自己开发的类上面写个注解就完成了,但如果是第三方的类,这些类都是在jar包中,我们没有办法在类上面添加注解,这个时候该怎么办?遇到上述问题,我们就需要有一种更加灵活的方式来定义bean,这种方式不能在原始代码上面书写注......
  • 解决云服务器被攻击至黑洞状态的实战指南
    当云服务器遭遇大规模的DDoS攻击时,为了保护网络基础设施和其他客户的服务不受影响,云服务提供商通常会将受到攻击的服务器置于所谓的“黑洞”状态——即完全屏蔽其对外的所有网络连接。本文将详细介绍云服务器被攻击至黑洞状态的原因、识别方法以及解决策略。黑洞状态简介......