模块化vuex,获取、设置数据,及刷新保留数据方法

模块化vuex,获取、设置数据,及刷新保留数据方法,第1张

1.模块化vuex

2.获取vuex中的数据

3.设置vuex中的数据

4.刷新之后,保留数据

数据结构

index.js

transaction.js模块

注意:namespaced是为了解决不同模块命名冲突的问题,分两种情况来写

获取vuex中的数据

设置vuex中的数据

如果将namespaced设置为false,则需要注意命名不能重复

也可以使用mapState,mapGetters,mapActions

安装

修改index.js配置,将数据保存到sessionStorage

Vuex其实就是一个状态管理工具,所谓的状态,就是数据,通过这个工具进行管理某些数据。当多个组件都需要同一个数据时,可以将这个数据交给Vuex进行统一的管理,组件可以直接引用这个数据,避免了组件间繁琐的层层传递的情况。

Vuex有五大核心,state,getter,mutation,action,module。state用来存放要被管理的数据,getter相当于computed计算属性,mutation中用来定义要修改state中数据的方法,action中用来定义异步的一些方法,module可以将多个store分成一个一个的模块。

以上就是vuex大致的使用方法

全文转自: 辰漪博客

vuex适合用于多组件共享数据的情况,多个组件都能读,也都可以改。

vuex的执行流程:

安装

使用

vuex是一个插件,所以需要Vue.use

注册了vuex,我们就可以在vue里配置store了

getters

这里多了个配置 getters ,他可以看作是基于state的computed属性。使用的方式基本如下:

同时getters还可以配置成函数,方便我们动态传参,满足一些复杂一点的场景

调用

模块化store

随着项目迭代,需求的扩展,你的store会变得越来越臃肿,建议模块化拆分store

以上就是一些对象的拼装,但是模块要放到名为modules的属性内部,store的最终结构大致如下:

模块的命名空间

默认模块的state、getter等属性都会合并到根级别,如果你希望模块有更好的封装性,避免多模块命名污染,可以配置上命名空间属性namespace:true

使用了模块命名空间后,action和getter内部常规用法只能访问本命名空间的dispatch,commit或者getter,如果要访问全局命名空间,需要使用额外的参数和配置:

模块动态注册

在 store 创建之后,你可以使用 $store.registerModule 方法注册模块

如果大多场景下,你的模块化store并不会被使用,只在你的业务流程页面中被用到,这时可以考虑在合适的生命周期节点(比如created)动态注册你的模块。同时要注意先检查模块是否已经被安装: $store.hasModule(moduleName) ,避免重复注册模块,不然会出现逻辑问题。你也可以卸载自己的模块: $store.unregisterModule(moduleName)

官方文档


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7930354.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存