当前位置:首页 > 科技  > 软件

为什么有些 Vue3 项目已经开始弃用 Pinia 了?

来源: 责编: 时间:2024-07-04 09:02:21 208观看
导读真的需要 Pinia 吗?最近在想一个问题:在 Vue3 项目中,进行状态管理的时候,我们真的需要 Pinia 吗?其实我们可以反过来想一个问题:没有 Pinia,我们能做状态管理吗?答案是:可以!!!ref、reactiveVue3 的一些 API 对比 React 的好处就

真的需要 Pinia 吗?

最近在想一个问题:在 Vue3 项目中,进行状态管理的时候,我们真的需要 Pinia 吗?GHu28资讯网——每日最新资讯28at.com

其实我们可以反过来想一个问题:没有 Pinia,我们能做状态管理吗?GHu28资讯网——每日最新资讯28at.com

答案是:可以!!!GHu28资讯网——每日最新资讯28at.com

ref、reactive

Vue3 的一些 API 对比 React 的好处就是,这些 API 并不一定需要在组件中去声明。GHu28资讯网——每日最新资讯28at.com

就比如你想要做局部状态管理的时候,可以直接使用 reactive、ref 这类 API 来完成。GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

这样能达到局部状态管理,多组件共用同一个状态的效果,请看下图:GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

effectScope

Vue3 有一个超级冷门的 API 叫 effectScope ,这个 API 非常强大,但是很多人都不知道它。GHu28资讯网——每日最新资讯28at.com

当然,既然很少人知道它,那自然就很少人知道,Pinia 的底层原理就是依赖了 effectScope。GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

既然 Pinia 是通过effectScope来实现的,那么,我们自然也可以直接使用这个 API 来做状态管理!GHu28资讯网——每日最新资讯28at.com

其实已经有人做过这件事了,就比如 vueuse 中的。GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

我们可以直接用这个 Hooks 来进行状态管理,如果是使用 effectScope 来进行管理的话,状态就不需要写在 Hooks 外部了,因为 effectScope 内部逻辑只会执行一次,无论你调用多少次。GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

利用 effectScope 也能达到组件之间共享状态!GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

那还需要 Pinia 吗?

结构分明

我觉得 Pinia 还是有他的好处的,好处就是:让我们少写一些代码,并且代码更加分明。GHu28资讯网——每日最新资讯28at.com

比如下面这个例子:GHu28资讯网——每日最新资讯28at.com

  • state: 定义状态
  • getter: 定义计算变量
  • action: 定义修改方法

结构很分明:GHu28资讯网——每日最新资讯28at.com

图片图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

监听 state

Pinia 还提供了 $subscribe 来监听整个状态,我们也可以利用这个方法来做持久化存储。GHu28资讯网——每日最新资讯28at.com

图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

插件机制

Pinia 提供了插件机制,可以让你去拓展 Pinia 的功能,以下是你可以扩展的内容:GHu28资讯网——每日最新资讯28at.com

  • 为 store 添加新的属性
  • 定义 store 时增加新的选项
  • 为 store 增加新的方法
  • 包装现有的方法
  • 改变甚至取消 action
  • 实现副作用,如本地存储
  • 仅应用插件于特定 store

比如举个小例子,给所有状态管理都加一个属性变量。GHu28资讯网——每日最新资讯28at.com

图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

Pinia 著名的持久化插件pinia-plugin-persistedstate就是利用了 Pinia 的插件机制。GHu28资讯网——每日最新资讯28at.com

图片GHu28资讯网——每日最新资讯28at.com

GHu28资讯网——每日最新资讯28at.com

他的核心代码其实很少,就是利用插件机制,使用$subscribe去监听每一个状态管理的变化,然后进行持久化存储!GHu28资讯网——每日最新资讯28at.com

图片 图片 GHu28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-98686-0.html为什么有些 Vue3 项目已经开始弃用 Pinia 了?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 上海启动未成年人网络环境整治专项行动:重点整治网络暴力、网络语言污染风气等突出问题

下一篇: 小猿学练机携最新 AI 大模型应用成果亮相世界人工智能大会

标签:
  • 热门焦点
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 摸鱼心法第一章——和配置文件说拜拜

    为了能摸鱼我们团队做了容器化,但是带来的问题是服务配置文件很麻烦,然后大家在群里进行了“亲切友好”的沟通图片图片图片图片对比就对比,简单对比下独立配置中心和k8s作为配
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 三言两语说透设计模式的艺术-单例模式

    写在前面单例模式是一种常用的软件设计模式,它所创建的对象只有一个实例,且该实例易于被外界访问。单例对象由于只有一个实例,所以它可以方便地被系统中的其他对象共享,从而减少
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • AI芯片初创公司Tenstorrent获三星和现代1亿美元投资

    Tenstorrent是一家由芯片行业资深人士Jim Keller领导的加拿大初创公司,专注于开发人工智能芯片,该公司周三表示,已经从现代汽车集团和三星投资基金等
  • iQOO 11S评测:行业唯一的200W标准版旗舰

    【Techweb评测】去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,该机不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞
  • 回归OPPO两年,一加赢了销量,输了品牌

    成为OPPO旗下主打性能的先锋品牌后,一加屡创佳绩。今年618期间,一加手机全渠道销量同比增长362%,凭借一加 11、一加 Ace 2、一加 Ace 2V三款爆品,一加
  • 2021中国国际消费电子博览会与青岛国际软件融合创新博览会新闻发布会隆重举行

    9月18日,2021中国国际消费电子博览会与青岛国际软件融合创新博览会新闻发布会在青岛国际新闻中心隆重举行。发布会上青岛市政府领导联袂出席,对本次双展会情
Top