Pinia-学习之路 01,介绍与安装

611 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第17天,点击查看活动详情

pinia-学习之路 01,介绍与安装

引言

本系列会以我的一个理解,来介绍并开始学习 Pinia

中间会插入自己所联系到的 乱七八糟 的 知识点

介绍

Pinia 是主要为 Vue 所打造的状态管理库

提到状态管理库,我们首先会想到 Vuex,为什么不使用 Vuex了呢?是用起来不舒服,不方便了呢?还是说内部有一些不可避免的逻辑不太好呢?还是说新的 API 出来了,更贴切状态管理呢?

例如就像 Vue2Object.defineProperty 不能完全做到响应式,而且遍历对象性能开销较大。而Proxy可以通过劫持整个对象进行来响应式数据处理,很好的解决了defineProperty的一些缺点。

下面简单进行对比,就知道为什么使用Pinia

Pinia

Pinia 于2019年11月开始设计,主要是设计成与 Vue3 相类似的组合式API,就是我们说的Composite API

Pinia 是有几个关键的设计点

  • 是适用于 Vue2Vue3

  • 取消 Mutations,仅仅支持 StateGettersActions

    • 这意味着我们该数据,就不需要通过 Mutations 来操作了

    • Action 支持 同步 和 异步

  • 没有嵌套模块

    • 只有 store 的概念
  • 完整支持TS

    • 因为 VuexTS 的支持不好

我们通过上面对比,可以了解到,在使用 Vuex

  • 我们在对数据改变时,需要考虑同步还是异步

  • 而且对 TS 的支持不是特别容易

  • 最后一点,Composite API是不需要嵌套模块的,此时 Module 就显得无用了。

安装

首先创建目录,先通过 vite 创建 vue3 项目

npm create vite@latest

创建项目名 pinia-pro,之后选择 vuevue-ts即可

image.png

之后进入pinia-pro项目中,安装 Pinia,看到 package.json 中出现 Pinia 即可安装成功。

npm i pinia

image.png

总结

知道了为什么要学习 Pinia 这个状态管理,和相较于 Vuex 的优缺点,及 Pinia 的安装。