在vuex中哪一部分不能直接调用

在vuex中哪一部分不能直接调用,第1张

在vuex中,不能直接调用mutation外的其他部分,包括state、getter、action等,这些部分都需要通过mutation来进行修改。mutation是vuex中用于修改state的唯一方式,因此想要修改state中的数据,必须通过提交mutation来进行,而不能直接对state进行修改。同样的,想要获取state中的数据,也需要通过getter来获取,而不是直接访问state。action也需要通过commit方法来触发mutation的提交,以达到修改state的目的。这样设计的目的是为了确保state的变化是可控和可追踪的,能够更好地维护应用程序的数据流。

vue 1里有$emit和$dispatch,前者不冒泡,后者会冒泡,vue 2里取消了冒泡,全部$emit 还可以用vuex 定义一个全局的state,子组件修改state 父组件可以访问到state的值

我测试使用的是脚手架2

vuex是一个很好用的状态管理模式,但是当我们先将数据保存到store中,然后重新刷新页面会发现store中的数据被重置了,这是因为store中的数据存储在内存之中。

解决办法: 既然内存中数据刷新会丢失,那么就可以在刷新的时候将数据保存到本地缓存,下次加载store中的数据时先去缓存中获取,没有缓存再加载默认初始值

我们想要在刷新的时候进行缓存数据 *** 作,我们就需要使用windows的unload事件,我们来看看这个unload事件:

我们刷新页面的时候就可以触发这个unload事件,GOOD!!!

我们知道整个vue的生命周期首先在 mainjs 中挂载一堆东西,然后挂载一个app组件,我们很想趁早添加这个unload的事件监听,但是为了保证 mainjs 的简洁性,我们选择将这个监听放在app组件的created钩子函数中

之前我们一直是每次加载store直接去获取默认值,现在我们需要先去看看缓存中是否有数据

初用vuex,项目中需要记录一些状态,来判断页面是否为登录状态和页面是否可被编辑,此时用到了vuex中的store来存储一个状态。

这里记录了两个值一个是id一个是状态值checkStatus,然后把创建的store在mainjs里导入

至此,我们可以在所需要的vue文件中为其赋值

赋值后,就可以在需要用到这些id和状态的vue文件中取值

现在,skillId和checkStatus相当于两个全局变量,可以在需要的页面获取值和更改值。但有一个严重的问题就是,在我们刷新页面的时候,vuex数据是重新初始化,无法获取的,导致出现了空值。

但这不是自己想要的结果,所以百度了一圈( >

以上就是关于在vuex中哪一部分不能直接调用全部的内容,包括:在vuex中哪一部分不能直接调用、vuex 子组建获取store中state为undefined,为啥、VUE----解决页面刷新Vuex中的数据清空等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9466349.html

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

发表评论

登录后才能评论

评论列表(0条)

保存