1.Pinia 简介
-- 未经授权禁止转载 --

学习之前请确保已经学习了 “ES6从入门到精通

本套课程配套视频 “3小时学会Vue3

       Pinia是一个轻量级的状态管理库


       Pinia官网

       https://pinia.vuejs.org/zh


       状态管理库是用于管理应用程序全局状态的工具

       以登录为例:

               使用Pinia创建一个userStore来集中管理用户的登录状态和过期时间


               当用户登录成功时:

                       设置userStore中用户的登录状态为已登录,并设置过期时间

               当用户退出登录时:

                       修改userStore中用户的登录状态为未登录,并删除过期时间


       Pinia 和 组件通信 的区别

       虽然Vue提供的父传子、子传父以及跨组件通信也可以用于状态共享,

       但在大型项目中,随着组件数量的增加,会导致以下问题:


       1.组件之间传递大量的props,会使项目变得非常繁琐和难以维护

       2.非父子组件间过度依赖provide/inject,使状态散落在各个组件之间


       Pinia 可以解决以下问题:

       1.全局状态管理

               所有组件都可以访问和修改状态,而不用在每个组件内部进行状态管理

       2.简化组件之间的通信

               避免在组件之间传递大量的props

       3.状态持久化

               可以将应用程序的状态保存到本地存储中,

               在应用程序重启后会保留状态,对于登录等场景非常有用


       总的来说,Pinia可以处理大型项目中复杂的状态管理需求,

       而父传子、子传父以及跨组件通信,可以解决一些简单的状态传递问题,

       更适合小型项目


       Pinia 和 localStorage 的区别

       localStorage

               LocalStorage只能存储字符串类型的数据

               LocalStorage有大小限制,通常为5MB左右

       Pinia

               Pinia可以存储任何类型的数据,包括对象、数组等

               Pinia没有大小限制,可以存储大量的数据


       总的来说,对于复杂的状态管理需求,使用Pinia是更好的选择,

       而对于简单的状态管理需求,使用localStorage是更简单的解决方案