Vue2向Vue3过度Vuex核心概念mutations

news2024/9/23 19:23:25

目录

    • 1 核心概念-mutations
      • 1.定义mutations
      • 2.格式说明
      • 3.组件中提交 mutations
      • 4.练习
      • 5.总结
    • 2 带参数的 mutations
      • 1.目标:
      • 2.语法
        • 2.1 提供mutation函数(带参数)
        • 2.2 提交mutation
    • 3 练习-mutations的减法功能
      • 1.步骤
      • 2.代码实现
    • 4 练习-Vuex中的值和组件中的input双向绑定
      • 1.目标
      • 2.实现步骤
      • 3.代码实现
    • 5 辅助函数- mapMutations


1 核心概念-mutations

在这里插入图片描述

1.定义mutations

const store  = new Vuex.Store({
  state: {
    count: 0
  },
  // 定义mutations
  mutations: {
     
  }
})

2.格式说明

mutations是一个对象,对象中存放修改state的方法

mutations: {
    // 方法里参数 第一个参数是当前store的state属性
    // payload 载荷 运输参数 调用mutaiions的时候 可以传递参数 传递载荷
    addCount (state) {
      state.count += 1
    }
  },

3.组件中提交 mutations

this.$store.commit('addCount')

4.练习

1.在mutations中定义个点击按钮进行 +5 的方法

2.在mutations中定义个点击按钮进行 改变title 的方法

3.在组件中调用mutations修改state中的值

5.总结

通过mutations修改state的步骤

1.定义 mutations 对象,对象中存放修改 state 的方法

2.组件中提交调用 mutations(通过$store.commit(‘mutations的方法名’))

2 带参数的 mutations

1.目标:

掌握 mutations 传参语法

2.语法

看下面这个案例,每次点击不同的按钮,加的值都不同,每次都要定义不同的mutations处理吗?

在这里插入图片描述

提交 mutation 是可以传递参数的 this.$store.commit('xxx', 参数)

2.1 提供mutation函数(带参数)

mutations: {
  ...
  addCount (state, count) {
    state.count = count
  }
},

2.2 提交mutation

handle ( ) {
  this.$store.commit('addCount', 10)
}

小tips: 提交的参数只能是一个, 如果有多个参数要传, 可以传递一个对象

this.$store.commit('addCount', {
  count: 10
})

3 练习-mutations的减法功能

在这里插入图片描述

1.步骤

在这里插入图片描述

2.代码实现

Son2.vue

    <button @click="subCount(1)">值 - 1</button>
    <button @click="subCount(5)">值 - 5</button>
    <button @click="subCount(10)">值 - 10</button>

    export default {
        methods:{
             subCount (n) { 
                this.$store.commit('addCount', n)
        },
        }
    }

store/index.js

mutations:{
    subCount (state, n) {
      state.count -= n
    },
}

4 练习-Vuex中的值和组件中的input双向绑定

1.目标

实时输入,实时更新,巩固 mutations 传参语法

在这里插入图片描述

2.实现步骤

在这里插入图片描述

3.代码实现

App.vue

<input :value="count" @input="handleInput" type="text">

export default {
  methods: {
    handleInput (e) {
      // 1. 实时获取输入框的值
      const num = +e.target.value
      // 2. 提交mutation,调用mutation函数
      this.$store.commit('changeCount', num)
    }
  }
}

store/index.js

mutations: { 
   changeCount (state, newCount) {
      state.count = newCount
   }
},

5 辅助函数- mapMutations

mapMutations和mapState很像,它把位于mutations中的方法提取了出来,我们可以将它导入

import  { mapMutations } from 'vuex'
methods: {
    ...mapMutations(['addCount'])
}

上面代码的含义是将mutations的方法导入了methods中,等价于

methods: {
      // commit(方法名, 载荷参数)
      addCount () {
          this.$store.commit('addCount')
      }
 }

此时,就可以直接通过this.addCount调用了

<button @click="addCount">值+1</button>

但是请注意: Vuex中mutations中要求不能写异步代码,如果有异步的ajax请求,应该放置在actions中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/931161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

05.Image Captioning with Semantic Attention

目录 前言泛读摘要Introduction创新/贡献点Related Work 精读输入的注意力模型输出的注意力模型模型学习视觉属性/概念预测实验MS-COCO的性能实验分析 Conclusion 代码略 前言 本课程来自深度之眼《多模态》训练营&#xff0c;部分截图来自课程视频。 文章标题&#xff1a;Ima…

多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比

多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比 目录 多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预…

用AI + Milvus Cloud搭建着装搭配推荐系统教程

以下函数定义了如何将图像转换为向量并插入到 Milvus Cloud 向量数据库中。代码会循环遍历所有图像。(注意:如果需要开启 Milvus Cloud 全新特性动态 Schema,需要修改代码。) 查询向量数据库 以下代码演示了如何使用输入图像查询 Milvus Cloud 向量数据库,以检索和上传…

智能文件批量改名工具,覆盖复制时轻松处理相同文件名!

亲爱的用户们&#xff0c;您是否在批量复制文件时常常被相同文件名困扰&#xff0c;手动一个个改名繁琐又费时&#xff1f;现在&#xff0c;我们为您推出一款智能的文件批量改名工具&#xff0c;帮助您轻松处理复制时的相同文件名&#xff0c;让文件管理更从容&#xff01; 首…

建设全球研发中心城市,长沙政协将会发挥怎样的作用?

政协力量&#xff0c;会如何推动一座城市的发展&#xff1f;在全国各大城市都力“拼经济、搞创新”的时代大背景下&#xff0c;人民政协的力量会如何助推长沙建设全球研发中心城市呢&#xff1f; 这是笔者此前一直很好奇的两个问题。8月24日&#xff0c;一场由长沙市政协举办的…

bex5-设计器连接本地BIZModel

注意platformRcp-new&#xff08;设计器&#xff09;与BIZModel要配套&#xff0c;不可版本不一致&#xff1b; tomcat启动使用jdk1.7 BIZModel修改数据源 在\BeX5_V3.6-ent-20210418\runtime\BizModel\WEB-INF\conf目录下修改database.xml中改为项目使用的数据源 web.xml中…

解决无法远程连接MySQL服务的问题

① 设置MySQL中root用户的权限&#xff1a; [rootnginx-dev etc]# mysql -uroot -pRoot123 mysql> use mysql; mysql> GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY Root123 WITH GRANT OPTION; mysql> select host,user,authentication_string from user; -…

锂电池老化房监测软件功能介绍

锂电池高温老化房的监测软件通常用于监测和记录锂电池在高温环境下的温度、电压、电流等参数。这些软件可以提供实时数据监测、数据记录和报表生成等功能&#xff0c;帮助用户监控锂电池的性能和稳定性。 监测软件&#xff1a;某些锂电池高温老化房配备了监测系统&#xff0c;…

Linux操作系统--linux概述

1.Linux概述 Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff08;OS&#xff09;。简单的说就是一种操作系统。在日常中常见的操作系统有一下三种: 2.linux起源和背景 (1).linux的诞生 linux操作系统是由李纳斯托瓦兹&#xf…

了解gcc的编译过程

先在msys2下gcc编译一个helloworld的C程序&#xff0c;默认没有gcc&#xff0c; 用pacman安装&#xff0c; 安装好&#xff1b; 构建运行hello C程序&#xff1b; 根据网上一些资料&#xff0c; GCC的编译包括四个阶段&#xff1a;预处理、编译、汇编和链接。分别使用了cc1、a…

硅谷的魔法:如何塑造了全球技术的未来

硅谷的创新文化简介 硅谷&#xff0c;位于美国加利福尼亚州的圣克拉拉谷&#xff0c;已经从一个半导体产业的中心发展成为全球技术创新的代名词。这里集结了全球最顶尖的技术公司、创业者和投资者&#xff0c;共同创造了一个技术创新的奇迹。 起源与发展 硅谷的起源与斯坦福大…

广州华锐互动:VR禁毒普法互动体验,让每一记警示都直击心灵

随着科技的发展&#xff0c;我们的教育工具和方法也在不断进步和创新。其中&#xff0c;虚拟现实&#xff08;VR&#xff09;技术的出现为我们提供了一种全新的宣传和教育方式。虚拟现实&#xff08;VR&#xff09;是一种让人们在仿真环境中体验、交互和操纵虚拟物体的技术。用…

【java】【项目实战】[外卖四]分类管理业务开发

前言&#xff1a;公共字段自动填充实现&#xff0c;删除业务逻辑实现 一、公共字段自动填充 1.1 问题分析 1.2 代码实现 1.2.1 修改实体类Employee package com.runa.reggie.entity;import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.…

c++存取dat数据

众所周知&#xff0c;dat是一个类似加密的二进制格式文件&#xff0c;很多人喜欢将游戏数据保存在dat文件中&#xff0c;只有知道你的存放格式&#xff0c;才能够将数据破解出来&#xff0c;因而研究了dat文件的存取方式。其实就是c文件的操作&#xff0c;只不过是在取的时候需…

批量记录当天收支明细,自动备份财务管理无忧!

在现代繁忙的生活中&#xff0c;财务管理变得越来越重要。我们为你提供了一款电脑高效记账专家&#xff0c;让你能够快速批量记录当天的收支明细&#xff0c;并设置自动备份&#xff0c;让财务管理变得更轻松 首先&#xff0c;第一步进入晨曦记账本主页面&#xff0c;点击上方功…

AutoCAD软件安装包分享

目录 一、软件简介 二、下载地址 一、软件简介 AutoCAD是一款专业的计算机辅助设计软件&#xff0c;用于帮助工程师、设计师和建筑师创建和编辑二维和三维模型。它提供了丰富的工具和功能&#xff0c;可以用于绘制、修改和分析各种设计项目。 AutoCAD具有直观的用户界面&am…

c++ qt--事件(第六部分)

c qt–事件&#xff08;第六部分&#xff09; 一.编辑伙伴&#xff0c;编辑顺序&#xff08;按TAB进行切换&#xff09; 1.编辑伙伴 此功能在设计界面如下的位置 1.设置伙伴关系 鼠标左键长按一个Label组件然后把鼠标移到另一个组件上 2.伙伴关系的作用 伙伴关系的作用就是…

ant design自定义展开折叠查看子项和点击行查看详情

实现思路&#xff1a;通过配置rowSelection&#xff0c;列表项是否可选择来实现。 页面内容&#xff1a; <a-table :dataSource"integrationBonds" :columns"columns" :customRow"customintegrationBondsRow":pagination"{hideOnSingle…

IDEA 配置注释模板

目录 一、配置类模板注释 二、配置方法注释 一、配置类模板注释 打开IDEA&#xff0c;打开settings(快捷键&#xff1a;Ctrl Alt s)&#xff0c;选择Editor&#xff0c;找到File and Code Templates&#xff0c;设置需要配置注释的文件类型&#xff0c;如下图所示&#xf…

深入剖析Kubernetes之Pod的实现原理

文章目录 概述Pod 的实现原理容器设计模式容器与虚拟机 Pod 的本质&#xff1a;Pod&#xff0c;实际上是在扮演传统基础设施里“虚拟机”的角色&#xff1b;而容器&#xff0c;则是这个虚拟机里运行的用户程序。 概述 容器&#xff0c;就是未来云计算系统中的进程&#xff1b;…