加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

VUE项目mapState和mapActions的作用和用法是啥

发布时间:2023-09-06 10:51:56 所属栏目:语言 来源:
导读:在实际应用中,我们有时候会遇到“VUE项目mapState和mapActions的作用和用法是什么”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“VUE项目mapState和mapActions的作用和用法

在实际应用中,我们有时候会遇到“VUE项目mapState和mapActions的作用和用法是什么”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“VUE项目mapState和mapActions的作用和用法是什么”文章能帮助大家解决问题。

最近在开发一套系统,前端使用VUE开发,由于本人是后端开发,前端也会一点,但是VUE接触不多,在VUE项目开发遇到的一些坑记录一下,不是专业前端写好的不好,大家不要唝。。。

在VUE项目中经常会用到mapState和mapActions,mapState主要用于同步全局的变量或者对象,mapActions主要是用于同步定义的方法,一般两者是结合使用,mapState同步项目中定义的全局的变量或者对象,mapActions是用于变量或者对象为空时,调用方法定义的全局方法获取。

mapActions和mapState需要引用vuex,所以在页面里面需要 使用下面的代码引入

import { mapActions, mapState } from 'vuex'

由于全局数据需要保存到本地缓存中,所以需要在main.js中引用store,并且定义全局的对象或者变量代码如下

import store from './store'

const state = {

userName,

token,

refreshToken,

tokenExpire,

menus: []

}

Vue.use(Vuex)

export default new Vuex.Store({

state,

actions, // 自定义的一些方法

mutations // 自定义的修改状态的方法

})

如果需要在某个页面获取menus的对象,就可以使用 mapState,如果menus对象已有值就获取直接同步过来

import { mapActions, mapState } from 'vuex'

computed: {

...mapState([

'menus'

])

// 如果要使用menus对象,直接使用this.menus即可

如果menus没有值就需要使用mapActions,将方法同步过来,在页面里面判断menus是否为空,如果为空,调用action获取并且保存,其他页面就可以直接获取了

import { mapActions, mapState } from 'vuex'

methods: {

...mapActions([

'getMenus'

])

if (menus.length === 0)

  this.getMenus() // 调用方法获取,这里getMenus如果是从接口获取数据,需要使用异步,否则可能会有问题

根据自己的理解写的,记录一下,如果有什么不正确的地方,欢迎更正。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章