经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
VUE中的mapState和mapActions的使用详解
来源:jb51  时间:2022/6/20 19:07:48  对本文有异议

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

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

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

  1. import { mapActions, mapState } from 'vuex'

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

  1. import store from './store'
  1. const state = {
  2. userName,
  3. token,
  4. refreshToken,
  5. tokenExpire,
  6. menus: []
  7. }
  8. Vue.use(Vuex)
  9. export default new Vuex.Store({
  10. state,
  11. actions, // 自定义的一些方法
  12. mutations // 自定义的修改状态的方法
  13. })

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

  1. import { mapActions, mapState } from 'vuex'
  2. computed: {
  3. ...mapState([
  4. 'menus'
  5. ])
  6. // 如果要使用menus对象,直接使用this.menus即可

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

  1. import { mapActions, mapState } from 'vuex'
  2. methods: {
  3. ...mapActions([
  4. 'getMenus'
  5. ])
  6. if (menus.length === 0)
  7.   this.getMenus() // 调用方法获取,这里getMenus如果是从接口获取数据,需要使用异步,否则可能会有问题

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

到此这篇关于VUE中的mapState和mapActions的使用详解的文章就介绍到这了,更多相关vue mapState和mapActions使用内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号