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

【vuex入门系列02】mutation接收单个参数和多个参数


以下操作全部放在了这个项目当中

https://github.com/itguide/vu...

mutation接收单个参数和多个参数

利用$store.commit 里面 写参数相当于 mutation的函数名字

    在组件里面:
    第一种方式: this.$store.commit("addIncrement",{name:'stark',age:18,n:5})
    第二种方式:
    this.$store.commit({
        type:"addIncrement",
        n:5,
        age:18,
        name:'stark.wang'
    })

在vuex里面接收:接收第二个参数相当于前面传过来的参数,如果多个这个就是对象,如果是一个参数,这个第二个参数payload就是前面的参数。

  mutations: {
        // 任何时候改变state的状态都通过提交 mutation 来改变
        // 里面可以定义多个函数,当触发这个函数就会改变state状态
        addIncrement(state, stark) {
            console.log(stark);
            // 接收一个state作为参数, 相当于上面的state
            // state.num += stark; // 当前面传一个参数的时候
            state.num += stark.n;
        },
        minIncrement(state) {
            state.num -= 5;
        }
    }

完整代码:

srccomponentsIncrement.vue 代码

<template> 
    <div>
        <h2>加减法计算器</h2>
        <div>
            <input type="button" value="-" @click="minHandle"/>
                <span>{{num}}</span>
            <input type="button" value="+" @click="addHandle"/>
        </div>
    </div>
</template>
<script>
    export default {
        // data(){
        //     return {
        //         // num:100
        //         num: this.$store.state.num,
        //     }
        // },
        computed:{
            num(){
                return this.$store.state.num
            }
        },
        methods:{
            addHandle(){
                // this.num += 5;
                // 点击的时候需要改变状态,提交mutation addIncrement
                // 利用$store.commit 里面 写参数相当于 mutation的函数名字
                // this.$store.commit("addIncrement",{name:'stark',age:18,n:5})
                // this.$store.commit({
                //     type:"addIncrement",
                //     n:5,
                //     age:18,
                //     name:'stark.wang'
                // })
            },
            minHandle(){
                // this.num -= 5;
                this.$store.commit("minIncrement")
                // this.$store.         
            }
        }
    }
</script>

vuex :/src/store/index.js 代码

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

let store = new Vuex.Store({
    state: {
        num: 100
    },
    mutations: {
        // 任何时候改变state的状态都通过提交 mutation 来改变
        // 里面可以定义多个函数,当触发这个函数就会改变state状态
        addIncrement(state, stark) {
            console.log(stark);
            // 接收一个state作为参数, 相当于上面的state
             // 在vuex里面接收:接收第二个参数相当于前面传过来的参数,如果多个这个就是对象,如果是一个参数,这个第二个参数payload就是前面的参数。
            // mutations设计原则是同步的
            //state.num += stark;
            state.num += stark.n;
        

        },
        minIncrement(state) {
            state.num -= 5;
        }
    }

})

export default store

相关文章:

  • 性能与性价比的平衡,阿里云第二代入门级实例T5详解
  • 13个绚丽的Jquery 界面设计
  • 20162321王彪 2017-2018《程序设计与数据结构》第五周学习总结
  • 剪我一根头发,就要做我一天女人。
  • VS2008 F5不能调试情况一例
  • 短路径算法-Dijkstra算法的应用之单词转换(词梯问题)
  • C++多线程中调用python api函数
  • Gridview的footer模板中放置控件实现添加功能
  • 如何更高效地使用 OkHttp
  • BZOJ-3713[PA2014]Iloczyn
  • Spring绑定请求参数过程以及使用@InitBinder来注册自己的属性处理器
  • 铁路(栈)
  • Aspose------导入Excel
  • 生活:高效且健康的生活习惯
  • value toDF is not a member of org.apache.spark.rdd.RDD
  • AWS实战 - 利用IAM对S3做访问控制
  • Django 博客开发教程 16 - 统计文章阅读量
  • ES6系统学习----从Apollo Client看解构赋值
  • Laravel 实践之路: 数据库迁移与数据填充
  • python学习笔记 - ThreadLocal
  • Python学习之路16-使用API
  • Python中eval与exec的使用及区别
  • spring boot下thymeleaf全局静态变量配置
  • Spring Cloud Feign的两种使用姿势
  • 多线程 start 和 run 方法到底有什么区别?
  • 手写双向链表LinkedList的几个常用功能
  • 双管齐下,VMware的容器新战略
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 写给高年级小学生看的《Bash 指南》
  • 一份游戏开发学习路线
  • 译有关态射的一切
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • Java性能优化之JVM GC(垃圾回收机制)
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • #HarmonyOS:基础语法
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (175)FPGA门控时钟技术
  • (SpringBoot)第七章:SpringBoot日志文件
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)fiber的基本认识
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (过滤器)Filter和(监听器)listener
  • .Net Web项目创建比较不错的参考文章
  • .NET 命令行参数包含应用程序路径吗?
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .net访问oracle数据库性能问题
  • .net连接oracle数据库
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .stream().map与.stream().flatMap的使用
  • @column注解_MyBatis注解开发 -MyBatis(15)