当前位置: 首页 > news >正文

Vue 四个map的使用方法

        1.mapState方法:用于帮助我们映射state中的数据为计算属性。

                computed:{

                        //借助mapState生成计算属性:sum、school、subject(对象写法)

                        ...mapState({sum:'sum',school:'school',subject:'subject'}),

                        //借助mapState生成计算属性:sum、school、subject(数组写法)

                        ...mapState(['sum','school','subject']),

                }

        2. mapGetters方法:用于帮助我们映射state中的数据为计算属性。

                computed:{

                        //借助mapGetters生成计算属性:bigSum(对象写法)

                        ...mapGetters({bigSum:'bigSum'}),

                        //借助mapGetters生成计算属性:bigSum(数组写法)

                        ...mapGetters(['bigSum'])

                }

         3. mapActions 方法:用于帮助我们生成与actions对话的方法,即:包含$store.dispatch(xxx)的函数。

                methods: {

                        //靠mapActions生成:incrementOdd、incrementWait(对象形式)

                        ...mapActions({incrementOdd:'incrementOdd',incrementWait:'incrementWait'}),

                        

                        //靠mapActions生成:incrementOdd、incrementWait(数组形式)

                        ...mapActions(['incrementOdd','incrementWait']),

                },

        4. mapMutations 方法:用于帮助我们生成与mutations对话的方法,即包含$store.commit(xxx)的函数。

                methods: {

                        //靠mapMutations生成:increment、decrement(对象形式)

                        ...mapMutations({INCREMENT:'INCREMENT',DECREMENT:'DECREMENT'}),

                        

                        //靠mapMutations生成:increment、decrement(数组形式)

                        ...mapMutations(['INCREMENT','DECREMENT']),

                },

/*    Count.vue    */
<template><div class="main"><h1>这门课是{{ school }}的{{ subject }}课程</h1><h2>当前求和为:{{ sum }}</h2><h3>当前求和放大十倍为:{{ bigSum }}</h3><select v-model.number="n"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select><button @click="INCREMENT(n)">+</button><button @click="DECREMENT(n)">-</button><button @click="incrementOdd(n)">当前为奇数再加</button><button @click="incrementWait(n)">等会再加</button></div>
</template><script>import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'export default {name:'Count',data() {return {n:1}},methods: {// increment(){//     //只需要执行state中sum的加法功能,逻辑简单可以不写dispatch//     this.$store.commit('INCREMENT',this.n)// },// decrement(){//     //只需要执行state中sum的减法功能,逻辑简单可以不写dispatch//     this.$store.commit('DECREMENT',this.n)// },//靠mapMutations生成:increment、decrement(对象形式)// ...mapMutations({INCREMENT:'INCREMENT',DECREMENT:'DECREMENT'}),//靠mapMutations生成:increment、decrement(数组形式)...mapMutations(['INCREMENT','DECREMENT']),/* **************************************************************** */// incrementOdd(){//     this.$store.dispatch('incrementOdd',this.n)// },// incrementWait(){//     this.$store.dispatch('incrementWait',this.n)// },//靠mapActions生成:incrementOdd、incrementWait(对象形式)// ...mapActions({incrementOdd:'incrementOdd',incrementWait:'incrementWait'}),//靠mapActions生成:incrementOdd、incrementWait(数组形式)...mapActions(['incrementOdd','incrementWait']),},computed:{//借助mapState生成计算属性:sum、school、subject(对象写法)// ...mapState({sum:'sum',school:'school',subject:'subject'}),//借助mapState生成计算属性:sum、school、subject(数组写法)...mapState(['sum','school','subject']),/* **************************************************************** *///借助mapGetters生成计算属性:bigSum(对象写法)// ...mapGetters({bigSum:'bigSum'}),//借助mapGetters生成计算属性:bigSum(数组写法)...mapGetters(['bigSum'])}}
</script><style lang="less" scoped>button{margin-left: 5px;}
</style>

 

http://www.xdnf.cn/news/1200241.html

相关文章:

  • Mysql 二进制安装常见问题
  • 设备独立性软件-高速缓存与缓冲区
  • GIF图像格式
  • 水稻调控组全景的综合绘制与建模揭示了复杂性状背后的调控架构
  • springboot基于Java的人力资源管理系统设计与实现
  • Java面试新趋势:云原生与新兴框架实战解析
  • Vscode的常用快捷键(摆脱鼠标计划)
  • 24点数学游戏(穷举法求解表达式)
  • mybatis-plus逻辑删除配置
  • PROFINET转CAN通讯协议转换速通汽车制造
  • 【机器学习-3】 | 决策树与鸢尾花分类实践篇
  • 【Typora】分享一款很好用的PJ版本的Markdown编辑器
  • k8s pod生命周期、初始化容器、钩子函数、容器探测、重启策略
  • S7-1500 与 S7-1200 存储区域保持性设置特点详解
  • ESP32学习-FreeRTOS队列使用指南与实战
  • 回归预测 | MATLAB实现BiTCN双向时间卷积神经网络多输入单输出回归预测
  • 如何在 Ubuntu 24.04 或 22.04 中更改 SSH 端口
  • 个人笔记HTML5
  • 【ee类保研面试】通信类---信息论
  • [2025CVPR-图象超分辨方向]DORNet:面向退化的正则化网络,用于盲深度超分辨率
  • 标签驱动的可信金融大模型训练全流程-Agentar-Fin-R1工程思路浅尝
  • Unity Catalog与Apache Iceberg如何重塑Data+AI时代的企业数据架构
  • JavaEE初阶第十二期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(十)
  • LeetCode 239:滑动窗口最大值
  • 模拟实现python的sklearn库中的Bunch类以及 load_iris 功能
  • RocksDB 高效采样算法:水塘抽样和随机寻址
  • WAIC 2025 热点解读:如何构建 AI 时代的“视频神经中枢”?
  • [N1盒子] 斐讯盒子N1 T1通用刷机包(可救砖)
  • SpringBoot 整合 Langchain4j AIService 深度使用详解
  • Valgrind Helgrind 工具全解:线程同步的守门人