如何在Vuex中获取组件vue实例

如何在Vuex中获取组件vue实例,第1张

在ajax回掉中添加callback;

methods:{

callback:function(_this){

consolelog(_this)

}

ajax回掉:function(){

thiscallback(this)

}

}

vuex的五个属性及使用方法如下:

基本属性

1、state:vuex的基本数据,用来存储变量。

2、geeter:从基本数据(state)派生的数据,相当于state的计算属性。

3、mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。

回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。

4、action:和mutation的功能大致相同,不同之处在于 ==》1 Action 提交的是 mutation,而不是直接变更状态。 2 Action 可以包含任意异步 *** 作。

5、modules:模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。

Vuex的用法:

新建vue项目testApp ==》 在testApp中建store文件 ==》 store文件下又有modules文件夹和getterjs 和 indexjs ==》 store文件下建userjs。

在项目的mainjs中引入  import store from '/store'。

在store文件下的indexjs中引入。

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

vuex的执行流程:

安装

使用

vuex是一个插件,所以需要Vueuse

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

getters

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

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

调用

模块化store

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

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

模块的命名空间

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

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

模块动态注册

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

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

官方文档

以上就是关于如何在Vuex中获取组件vue实例全部的内容,包括:如何在Vuex中获取组件vue实例、vuex的五个属性及使用方法、vuex的使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存