- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第10章Pinia状态管理;教学内容;知识目标;知识点预览;与其他模块一样,Pinia的安装只需要在项目根目录下执行下列指令:
npminstallpinia
Pinia安装成功后,并不能直接在组件中使用,需要对它进行全局配置。;完成pinia的安装和全局性配置后,接下来就可以构建pinia的结构,pinia是状态管理工具,管理的方式是构建一个个store对象,与vuex的分模块管理不同,pinia中的一个store对象就是一个模块,它与vuex的区别如图所示。
;在很多情况下,State是Store对象的最重要的组成部分,是Store对象的核心,因为开发者在创建一个Store对象时,首先考虑的是State如何设计。在Pinia中,State是一个返回初始状态值的函数,通过函数的形式,既可以支持客户端,也能响应服务端。
;当保存Store的实例化对象后,不仅可以访问和操作state对象的属性值,还可以直接调用$retset()方法,使用state对象重新还原成初始值。
既可以通过Store的实例化对象访问State的属性并变更它的值,还可以借助mapState函数将State属性映射为只读的计算属性,如果调用mapWritableState函数,则State属性映射后,还可以进行修改。
虽然这种映射的方式可以访问State中的某个属性值,但它是只读的,不能修改这个属性的值,如果需要修改映射的值,可以调用mapWritableState函数。;如果需要批量变更State中的多个属性值,可以调用Store实例化对象中的$patch方法,它可以用对象的形式在同一时间内,一次性更新多个属性值。
虽然这种对象形式的更新方式,可以一次更新多个属性值,但如果属性值是数组,这种更新方式的性能就非常低,为了解决这个问题,在调用$patch方法时,也允许使用一个函数的形式来实现多个属性的更新。;Getters是针对State中的属性再次计算,它也是Store中一个非常重要的组成部分,因为当进入不同页面时,State对象的某个初始值也需要发生相应变化,而Getters就可以实现这些功能,可以根据不同的页面定义不同的函数,并在对应的页面中执行即可。;与State对象一样,Getters对象也可以通过mapState映射成computed对象中的一个成员,当调用时,才会重置State的属性值。;Store中的Actions部分,用于定义操作属性的方法,类似于组件中的methods部分,它与Getters都可以操作State属性,但在定义方法时,Getters是对State属性进行加工处理,再返回使用,属于内部计算;Actions则是根据业务逻辑,操作State或Getters保存的值,方法中可以实现异步请求、调用任意的API,属于逻辑层部分。
Actions属于Store中的一部分,因此,可以使用defineStore方法中Actions属性来构建某个业务逻辑。Actions属性构建完成后,如果需要在其他组件中调用,通常使用mapActions,将它的操作属性映射成组件methods中的一部分。;如果需要缓存整个Store对象中的State数据,可以使用pinia-plugin-persist插件,该插件是专门用于Pinia的扩展插件,功能是将State数据保存至localStorage或sessionStorage中,默认是以Store的id作为key,保存在sessionStorage对象中。在使用pinia-plugin-persist插件之前,先需要安装该插件,在终端执行如下代码
npmipinia-plugin-persist--S
您可能关注的文档
- Vue.js 超详细入门与项目实战(微课视频版)教学大纲.docx
- Vue.js 超详细入门与项目实战(微课视频版)课件 第01章 前端框架发展.pptx
- Vue.js 超详细入门与项目实战(微课视频版)课件 第02章 Vue 脚手架功能.pptx
- Vue.js 超详细入门与项目实战(微课视频版)课件 第03章 Vue 数据绑定.pptx
- Vue.js 超详细入门与项目实战(微课视频版)课件 第04章 元素事件绑定.pptx
- Vue.js 超详细入门与项目实战(微课视频版)课件 第05章 元素动画效果.pptx
- Vue.js 超详细入门与项目实战(微课视频版)课件 第06章 组件.pptx
- Vue.js 超详细入门与项目实战(微课视频版)课件 第07章 组件传参.pptx
- Vue.js 超详细入门与项目实战(微课视频版)课件 第08章 路由.pptx
- Vue.js 超详细入门与项目实战(微课视频版)课件 第09章 接口.pptx
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)