Vuex的使用(五)——mapGetters的定义和用法[通俗易懂]

Vuex的使用(五)——mapGetters的定义和用法[通俗易懂]参考文档:https://vuex.vuejs.org/zh/guide/当需要在组件中使用多个getters时,可以利用mapGetters批量生成计算属性(新增文件路径为src\components\componentE.vue),代码如下:mapGetters用法gettersinvuex:{{param2}}引用上面创建的component-e查看效果(修改文件路径为src\main.js),代码如下:imp

大家好,又见面了,我是你们的朋友全栈君。

参考文档:https://vuex.vuejs.org/zh/guide/

当需要在组件中使用多个getters时,可以利用mapGetters批量生成计算属性(新增文件路径为src\components\componentE.vue,可以通过切换示例中注释的计算变量来查看对应的页面效果),代码如下:

<template>
    <div>
        <span>mapGetters用法</span>
        <br />
        <span>getters in vuex:{
  
  {param2}}</span>
    </div>
</template>

<script> import { 
      mapGetters } from "vuex"; export default { 
      name: "component-e", // 基础写法,与state基本相同,唯一的区别是state在引用时用的是this.$store.state[xxx],getters在引用时用的是this.$store.getters[xxx] // computed: { 
      // param2() { 
      // return this.$store.getters["param2"]; // } // } // 要注意的是,Vuex禁止开发者在mapGetters中对getters进行二次处理,所以以下写法是不行的(如果业务缺失需要,则应该采用上面的基础写法),控制台会提示:unknown getter: getters => getters.param2 // computed: mapGetters({ 
      // param2: getters => getters.param2 // }) // mapGetters允许的写法(这个写法无法对getters进行二次处理),与mapState基本相同,唯一的区别是需要import mapGetters,且创建的是mapGetters对象 // computed: mapGetters({ 
      // param2: "param2" // }) // 与mapState一样mapGetters也允许简化写法 // computed: mapGetters(["param2"]) // 与局部计算变量混用(mapGetters与mapState混用时也需要按照以下写法定义state和getters) computed: { 
      computedParam() { 
      return "computedParam"; }, ...mapGetters(["param2"]) } }; </script>

<style scoped> </style>

引用上面创建的component-e查看效果(修改文件路径为src\main.js),代码如下:

import Vue from 'vue'
import store from './store'
import ComponentA from './components/ComponentA.vue'
import ComponentB from './components/ComponentB.vue'
import ComponentC from './components/ComponentC.vue'
import ComponentD from './components/ComponentD.vue'
import ComponentE from './components/ComponentE.vue'

new Vue({ 
   
    el: '#app',
    store,
    components: { 
    ComponentA, ComponentB, ComponentC, ComponentD, ComponentE },
    template: '<div><component-a></component-a><component-b></component-b><component-c></component-c><component-d></component-d><component-e></component-e></div>'
});

运行后查看页面可以看到示例代码中通过mapGetters生成的几种计算属性之间没有任何区别。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142871.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JAVA 获取当前时间(年月日时分秒)

    JAVA 获取当前时间(年月日时分秒) 获取当前时间(年月日时分秒)Dated= new Date();SimpleDateFormatsbf= new SimpleDateFormat(

  • Java Calendar类详解

    Java Calendar类详解原文这里。究竟什么是一个Calendar呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢?比如有:月份的定义-阳`(公)历一年12个月,每个月的天数各不同;阴(农)历,每个月固定28天每周的第一天-阳(公)历星期日是第一天;阴(农)历,星期一是第一天实际上,在历史上有着许多种纪元的方法。它们的差异实在太大了,比如说一

  • Mac读写NTFS格式磁盘

    Mac读写NTFS格式磁盘在mac上接了个移动硬盘,发现只能读不能写,查了下有个ntfsformac,发现还要钱。使用mount命令:dotzdeMacBook-Pro-2:/dotz$mount/dev/disk1s1on/(apfs,local,journaled)devfson/dev(devfs,local,nobrowse)/dev/disk1s4on/private/…

  • 后端:414 Request-URI Too Large解决方案

    后端:414 Request-URI Too Large解决方案Web项目接口请求会出现414Request-URITooLarge这个错误下面给大家分享一下相关解决办法:一、get请求改为Pos…

  • golang激活码破解方法

    golang激活码破解方法,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • CSS 鼠标样式「建议收藏」

    CSS 鼠标样式「建议收藏」巧合要用到鼠标样式效果,就顺便整理了下十五种CSS鼠标样式,小例子供大家使用啊。CSS鼠标样式语法如下:任意标签中插入style=”cursor:*” 例子:文本或其它页面元素 文本或其它页面元素 注意把*换成如下15个效果的一种:下面是对这15种效果的解释。移动鼠标到解释上面,看看你的鼠标起了什么变化吧!hand是手型   例子:CSS鼠标手型效果 CSS

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号