Pinia状态管理库
Pinia意为菠萝,表示与菠萝一样,由很多小块组成。在pinia中,每个store都是单独存在,一同进行状态管理。
很多人也将pinia称为vuex5,因为pinia将作为vue3推荐的状态管理库,而vuex将不再迭代。主要原因按pinia原文是:
Eventually, we realized that Pinia already implements most of what we wanted in Vuex 5, and decided to make it the new recommendation instead.
- pinia是如何做到类型安全,摒弃魔法字符串?
因为pinia将state、getter、action都绑定到store的属性,通过composition可以获取到对应的store实例。 - 为什么pinia不需要mutation?
在vuex中使用mutation记录数据的更新,action进行异步操作,而pinia在action执行完成后会自动发布给订阅者,所以就不需要mutation。 - 为什么$patch可以批量更新?
在更新期间通过isListening标识暂停触发回调函数。