学习之前请确保已经学习了 “ES6从入门到精通”
本套课程配套视频 “3小时学会Vue3”
Pinia是一个轻量级的状态管理库
Pinia官网
状态管理库是用于管理应用程序全局状态的工具
以登录为例:
使用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是更简单的解决方案