首页 > web前端 > 前端问答 > vue的辅助函数有哪些

vue的辅助函数有哪些

青灯夜游
发布: 2021-12-22 18:44:52
原创
2554 人浏览过

vue的辅助函数有:1、mapState,将全局状态管理的state值映射到组件的计算属性;2、mapGetters,将全局状态管理的getters值映射到组件的计算属性;3、mapActions;4、mapMutations。

vue的辅助函数有哪些

本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。

1.Vue的辅助函数

mapState、mapGetters、mapActions、mapMutations

  • mapState 将全局状态管理的state值映射到组件的计算属性

  • mapGetters 将全局状态管理的getters值映射到组件的计算属性

  • mapMutation 将mutation的值映射到方法里

  • mapActions 将actions里的值映射到方法里

2.mapState 辅助函数

mapState是什么?官方的解释是:

当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余。为了解决这个问题,我们可以使用 mapState 辅助函数帮助我们生成计算属性,让你少按几次键

当初在看到这个解释的时候可能觉得非常空洞,难以理解。生成计算属性是什么?少按几次键???

mapState是state的语法糖,什么是语法糖?我对语法糖的理解就是,我明明已经对一种操作很熟练了,并且这种操作也不存在什么问题,为什么要用所谓的"更好,更好的操作"?,用了一段时间后,真香!

3.如何使用

在使用mapState之前,要导入这个辅助函数。

1

import { mapState } from 'vuex'

登录后复制

使用方式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<template>

  <div id="example">

    <button @click="decrement">-</button>

    {{count}}

    {{dataCount}}

    <button @click="increment">+</button>

    <div>{{sex}}</div>

    <div>{{from}}</div>

    <div>{{myCmpted}}</div>

  </div>

</template>

<script>

import { mapState } from &amp;#39;vuex&amp;#39;

export default {

  data () {

    return {

      str: &#39;国籍&#39;,

      dataCount: this.$store.state.count

    }

  },

  computed: mapState({

    count: &#39;count&#39;, // 第一种写法

    sex: (state) => state.sex, // 第二种写法

    from: function (state) { // 用普通函数this指向vue实例,要注意

      return this.str + &#39;:&#39; + state.from

    },

    // 注意下面的写法看起来和上面相同,事实上箭头函数的this指针并没有指向vue实例,因此不要滥用箭头函数

    // from: (state) => this.str + &#39;:&#39; + state.from

    myCmpted: function () {

      // 这里不需要state,测试一下computed的原有用法

      return &#39;测试&#39; + this.str

    }

  }),

  methods: {

    increment () {

      this.$store.commit(&#39;increment&#39;)

    },

    decrement () {

      this.$store.commit(&#39;decrement&#39;)

    }

  }

}

</script>

登录后复制

computed可以接收mapState函数的返回值,你可以用代码中的三种方式去接收store中的值,具体可以看注释。
如果我在后面想使用mapState怎么办?其实很简单

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

//之前的computed

computed:{

    fn1(){ return ...},

    fn2(){ return ...},

    fn3(){ return ...}

    ........

}

//引入mapState辅助函数之后

  

computed:mapState({

    //先复制粘贴

    fn1(){ return ...},

    fn2(){ return ...},

    fn3(){ return ...}

    ......

    //再维护vuex

    count:&#39;count&#39;

    })

登录后复制

4.对象展开运算符

…mapState并不是mapState的扩展,而是…对象展开符的扩展 。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

//之前的computed

computed:{

    fn1(){ return ...},

    fn2(){ return ...},

    fn3(){ return ...}

    ........

}

//引入mapState辅助函数之后

  

computed:{

    //原来的继续保留

    fn1(){ return ...},

    fn2(){ return ...},

    fn3(){ return ...}

    ......

    //再维护vuex

    ...mapState({  //这里的...不是省略号了,是对象扩展符

        count:&#39;count&#39;

    })

登录后复制

mapStatemapGettersmapActionsmapMutations的使用方法大同小异。。。

【相关推荐:《vue.js教程》】

以上是vue的辅助函数有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板