原文网址:Vuex--mutations--使用/教程/实例_IT利刃出鞘的博客-CSDN博客

简介

说明

本文用示例介绍Vuex的五大核心之一:mutations。

官网

Mutation | Vuex

API 参考 | Vuex

mutations概述

mutations是vuex里唯一可以改变state数据的方法。

有多个对象,里边包含多个直接更新 state 的方法(回调函数)

触发方式: action 中的 commit(‘mutation 名称’)

只能包含同步代码, 不能写异步代码。

用法

直接使用

//在JS中使用
this.$store.commit('mutations方法名', 具体值)        // 不分模块
this.$store.commit('模块名/mutations方法名', 具体值) // 分模块//在模板中使用
$store.commit('mutations方法名', 具体值)        // 不分模块
$store.commit('模块名/mutations方法名', 具体值) // 分模块

mapMutations

import { mapMutations } from 'vuex'
export default {computed: {// 不分模块...mapMutations(['mutations方法名'])// 分模块,不修改方法名...mapMutations('模块名', ['mutations方法名'])// 不分模块,不修改方法名...mapMutations('模块名', {'新mutation方法名': 'mutation方法名'})}
}

示例

CounterStore.js

import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex);
const counterStore = new Vuex.Store({state: {count: 10},getters: {doubleCount(state) {return state.count * 2;}},mutations: {increment(state) {state.count++;},decrement(state) {state.count--;},// 带参数addNumber(state, param1) {state.count += param1;},},}
);export default counterStore;

Parent.vue(父组件,是个入口组件)

<template><div class="outer"><h3>父组件</h3><component-a></component-a><component-b></component-b></div>
</template><script>
import ComponentA from "./ComponentA";
import ComponentB from "./ComponentB";export default {name: 'Parent',components: {ComponentA, ComponentB},
}
</script><style scoped>
.outer {margin: 20px;border: 2px solid red;padding: 20px;
}
</style>

ComponentA.vue(改变vuex的数据)

<template><div class="container"><h3>ComponentA</h3><button @click="thisIncrement">加1</button><button @click="thisDecrement">减1</button><button @click="thisAddNumber">增加指定的数</button></div>
</template><script>
export default {data() {return {cnt: 5}},methods:{thisIncrement() {this.$store.commit('increment')},thisDecrement() {this.$store.commit('decrement')},thisAddNumber() {this.$store.commit('addNumber', this.cnt)}}
}
</script><style scoped>
.container {margin: 20px;border: 2px solid blue;padding: 20px;
}
</style>

ComponentB.vue(读取vuex的数据)

<template><div class="container"><h3>ComponentB</h3><div>计数器的值:{{thisCount}}</div><div>计数器的2倍:{{thisDoubleCount}}</div></div>
</template><script>
export default {computed:{thisCount() {return this.$store.state.count;},thisDoubleCount() {return this.$store.getters.doubleCount;},}
}
</script><style scoped>
.container {margin: 20px;border: 2px solid blue;padding: 20px;
}
</style>

路由(router/index.js)

import Vue from 'vue'
import Router from 'vue-router'
import Parent from "../components/Parent";Vue.use(Router)export default new Router({routes: [{path: '/parent',name: 'Parent',component: Parent,}],
})

测试

访问:http://localhost:8080/#/parent

Vuex--mutations--使用/教程/实例相关推荐

  1. Vuex--mapState, mapGetters, mapActions, mapMutations--使用/教程/实例

    原文网址:Vuex--mapState, mapGetters, mapActions, mapMutations--使用/教程/实例_IT利刃出鞘的博客-CSDN博客 简介 说明 本文用示例介绍Vu ...

  2. Vue--Vuex--使用/教程/实例

    原文网址:Vue--Vuex--使用/教程/实例_IT利刃出鞘的博客-CSDN博客 简介  说明 本文介绍Vue的插件:Vuex.包括:优缺点.使用场景.示例. 官网 官网文档 API vuex-st ...

  3. adc 接收cube_官方的stm32cube软件教程实例ADC操作代码(官方自带的,可以无视

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 官方的stm32cube软件教程实例ADC操作代码(官方自带的,可以无视),看不懂怎么用的可以等本贴吧更新图片教程,现在就是凑帖子数量,完成转职的,请谅解 ...

  4. Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找

    ylbtech-Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找 1.返回顶部 1. Java 实例 - 数组排序及元素查找  Java 实例 以下实例演示 ...

  5. Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化

    ylbtech-Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化 1.返回顶部 1. Java 实例 - 字符串格式化  Java 实例 以下实例演示了通过 f ...

  6. 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...

    (原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询) /************************************************************ ...

  7. Flex 布局教程实例

    Flex 布局教程实例 一.Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 F ...

  8. Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素-un

    ylbtech-Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素 1.返回顶部 1. Java 实例 - 查找数组中的重复元素  Java 实例 以下实例 ...

  9. Vue Vuex的详细教程

    Vue Vuex的详细教程 Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变 ...

最新文章

  1. 不是python中用于开发用户界面的第三方库-Python计算生态习题(50题)
  2. SOFA 源码分析 — 连接管理器
  3. Oracle session连接数和inactive的问题记录【转】
  4. android opencv 银行卡识别,NDK 开发之使用 OpenCV 实现银行卡号识别
  5. 如何打印出给定尺寸的方格_打印给定号码的表格| 8086微处理器
  6. 【flink】Flink 1.12.2 源码浅析 : yarn-per-job模式解析 TaskMasger 启动
  7. SAP License:AM手工折旧计算外折旧
  8. 用编程语言和计算机沟通
  9. UML设计中的箭头详解
  10. 《CCNA网络技术学习指南》-命令版
  11. C语言编程乐高,ROBOLAB 2.9 编程指南第五章乐高机器人-基础小实验
  12. python numpy库下载_Numpy库的下载与安装总结
  13. vue实现echarts中的map自定义地图背景色
  14. 日文输入法快捷键整理
  15. 一枚钻戒如何成功借势世界杯,与粉丝秀恩爱
  16. Django个人博客开发练手demo笔记
  17. git 上传出现“ ! [rejected] master -> master (non-fast-forward)”
  18. 史记.(闸北)刀客列传
  19. 解决no matching host key type found. Their offer: ssh-rsa报错信息具体方法
  20. HDU 2020 多校第二场 游记

热门文章

  1. 个人博客网站优化方向
  2. 华为mate50和华为mate50pro区别 华为mate50和华为mate50pro参数对比
  3. 学习笔记(02):PPT2013 设计应该这样玩-PPT中复杂图形的绘制(案例篇)
  4. 【Kettle】 数据转换的基本操作
  5. 小学生计算机汉字输入课程教案,小学信息技术《汉字输入一点通》教学设计
  6. 微服务架构开发实战:API网关意义和常见API网关的实现方式
  7. 小程序流量主能赚多少_微信:6月1日起调整小程序和公众号流量主广告收入比例...
  8. 真敏感词雷死哥了:伪娘啊,还是割了吧
  9. 教你如何认识一个股票有庄家(图解)
  10. Git 配置环境变量