vue的action与mutation 的区别

ops/2024/12/22 13:52:35/

在 Vue.js 的状态管理库 Vuex 中,mutations 和 actions 都是用于更改状态的方法,但它们之间存在一些重要的区别。下面我将通过举例来说明这些区别:

1. 基本定义
mutations:用于直接修改状态(state)。它们是同步函数。
actions:用于提交 mutations,而不是直接修改状态。它们可以包含任意异步操作。


2. 示例

假设我们有一个简单的购物车应用,其中有一个状态 cartItems 表示购物车中的商品。

mutations 示例
javascript
mutations: {
  ADD_TO_CART(state, item) {
    // 直接修改状态
    state.cartItems.push(item);
  }
}

actions 示例
javascript
actions: {
  async addToCart({ commit }, item) {
    // 模拟异步操作,例如从服务器获取商品信息
    const itemDetails = await fetchItemDetails(item.id);
    
    // 提交 mutation 来修改状态
    commit('ADD_TO_CART', { ...item, ...itemDetails });
  }
}

3. 主要区别
同步与异步:mutations 是同步的,这意味着它们会立即修改状态。而 actions 可以包含异步操作,例如 API 调用,然后在异步操作完成后提交一个 mutation。
直接修改状态:mutations 直接修改状态。而 actions 不直接修改状态,而是通过提交 mutation 来修改状态。
类型检查:在 Vuex 的严格模式下,mutations 的类型(即它们的名称)会被检查,以确保它们没有被意外地调用。而 actions 的类型则不会被这样检查。
4. 使用场景
当你需要直接、同步地修改状态时,使用 mutations。
当你需要进行异步操作或需要封装一些复杂的逻辑(例如错误处理、日志记录等)时,使用 actions。

通过上面的例子和解释,希望你能更清晰地理解 Vuex 中 mutations 和 actions 的区别及其使用场景。

 


http://www.ppmy.cn/ops/31610.html

相关文章

JavaScript 简单类型与复杂类型

一、简单类型与复杂类型 简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型 值类型:简单数据类型,在存储时变量中存储的是值本身,因此叫做值类型 string number boolean undefined null 返回的是空的对象 ob…

Windows设置Redis为开机自启动

前言 Redis作为当前最常用的当前缓存技术,基本上Web应用中都有使用。所以,每次我们在本地启动项目前,都必须将Redis服务端启动。但是,每次都要去启动Redis就很麻烦,有没有办法做到开机自动启动Redis呢?这当…

SDB2F5 1.5A,高达28V输出1.2MHz升压转换器芯片IC

一般说明 该SDB2F5是一个恒定的频率,5针SOT23电流模式升压转换器,低功耗应用。SDB2F5交换机位于1.2MHz,并允许使用高度小于或等于2mm的微小、低成本电容器和电感器。内部软启动的结果在小浪涌电流和延长电池寿命。 该SDB2F5操作从一个…

AWTK 和 QT 资源占用不完全对比

因为没有开发两个完全一样的应用程序,对比的结果并不是很准确,仅供参考。 对比的程序为: AWTK demoui 演示了 AWTK 常用功能。 QT QDesktop 演示了 QT 常用功能。 运行平台为: i.MX6ULL Linux 1. 可以执行文件大小 1.1 AWTK…

商城系统推荐,如何找到一款可靠的商城系统?

如今,电商系统成为商家必不可少的营销工具,其系统在金融、外贸、零售等行业领域应用广泛。那么,作为初试水的企业又没有挑选电商系统的经验,如何找到拥有全功能、全渠道、可靠的网上商城系统呢? 我们可以先按电商系统…

软件工程习题答案2024最新版

习题一答案 一、选择题 软件的主要特性是(A B C)。 A) **无形 **B) 高成本 C) **包括程序和文档 ** D) 可独立构成计算机系统 软件工程三要素是(B)。 A) 技术、方法和工具 B) 方法、工具和过程 C) 方法、对象和类 D) 过程、模型、方法 包含风险分析的软件工程模型是(A)…

OceanBase开发者大会实录-陈文光:AI时代需要怎样的数据处理技术?

本文来自2024 OceanBase开发者大会,清华大学教授、蚂蚁技术研究院院长陈文光的演讲实录—《AI 时代的数据处理技术》。完整视频回看,请点击这里>> 大家好,我是清华大学、蚂蚁技术研究院陈文光,今天为大家带来《AI 时…

深入理解正则表达式:从入门到精通

title: 深入理解正则表达式:从入门到精通 date: 2024/4/30 18:37:21 updated: 2024/4/30 18:37:21 tags: 正则Python文本分析日志挖掘数据清洗模式匹配工具推荐 第一章:正则表达式入门 介绍正则表达式的基本概念和语法 正则表达式是一种用于描述字符串…