vuex基础用法 与 辅助函数使用

效果图

在这里插入图片描述

index.js文件

import Vue from "vue";
import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({state: {shopsList: [{goodsName: "手机1", //商品名goodsAmount: 0, //购买的商品数量goodsPrice: 100, //单个商品价格totalPrice: 0,id: 1,},{goodsName: "手机2", //商品名goodsAmount: 0, //购买的商品数量goodsPrice: 200, //单个商品价格totalPrice: 0,id: 2,},{goodsName: "手机3", //商品名goodsAmount: 0, //购买的商品数量goodsPrice: 300, //单个商品价格totalPrice: 0,id: 3,},{goodsName: "手机4", //商品名goodsAmount: 0, //购买的商品数量goodsPrice: 400, //单个商品价格totalPrice: 0,id: 4,},],goodsNumber: 0},mutations: {// 添加商品addGoodsMutations(state, goods) {state.shopsList.forEach((item) => {if (item.id === goods.id) {item.goodsAmount++}})},// 减去商品reduceGoodsMutations(state, goods) {if (goods.goodsAmount === 0) {alert("商品已经不能再减啦")return}state.shopsList.forEach((item) => {if (item.id === goods.id) {item.goodsAmount--}})},totalMutations(state, goods) {state.shopsList.forEach((item) => {if (item.id === goods.id) {item.totalPrice = item.goodsAmount * item.goodsPrice}})},},actions: {addGoodsActions({commit}, item) {commit('addGoodsMutations', item)},reduceGoodsActions({commit}, item) {commit('reduceGoodsMutations', item)},totalAction({commit}, item) {commit('totalMutations', item)}},getters: {},modules: {}
})

页面

<template><div class="box"><div class="content" v-for="(item, index) in shopsList" :key="index"><div>名称:{{ item.goodsName }} 价钱:{{ item.goodsPrice }}购买数量:<el-button style="margin-right: 5px" @click="reduce(item)">-</el-button><span>{{ item.goodsAmount }}</span><el-button style="margin-left: 5px" @click="add(item)">+</el-button><span>总价钱:{{ item.totalPrice }}</span></div></div></div>
</template><script>
import { mapState, mapMutations, mapActions } from "vuex";
export default {mounted() {},data() {return {};},computed: {...mapState(["shopsList", "totalPrice", "goodsNumber"]),},methods: {...mapMutations(["addGoodsMutations", "reduceGoodsMutations"]),...mapActions(["addGoodsActions", "reduceGoodsActions", "totalAction"]),// 减少商品数量reduce(item) {this.reduceGoodsActions(item);this.totalAction(item);},// 增加商品数量add(item) {this.addGoodsActions(item);this.totalAction(item);},},
};
</script><style>
.box {width: 400px;height: 200px;border: 1px solid black;
}
.content {height: 50px;display: flex;justify-content: space-evenly;align-items: center;
}
</style>

先这样吧,后续将再完善

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

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

相关文章

Required request body is missing报错及解决

今天&#xff0c;我在尝试调用后端接口展示文章数据时遇到了错误&#xff0c;错误原因是请求体缺失&#xff0c; 但是我明明传了参数 然后我找了很久错误原因&#xff0c;发现在之前跟着写的一个差不多的功能时&#xff0c;请求方式是post 而我写的确是get 将get改为post后&…

PHP 基础编程 2

文章目录 时间函数dategetdatetime 使用数组实现登录注册和修改密码简单数组增加元素方法修改元素方法删除元素方法 具体实现方法数组序列化数组写入文件判断元素是否在关联数组中&#xff08;登录功能实现&#xff09;实现注册功能实现修改admin用户密码功能 时间函数 时区&am…

蓝牙简学(二)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、服务和特性二、数据收发三、UUID 一、服务和特性 service、characteristic 下面的图是蓝牙协议的整体架构&#xff0c; 1.物理层&#xff1a;负责无线电波的收…

x-cmd pkg | procs - ps 命令的现代化替代品

目录 简介首次用户功能特点类似工具进一步阅读 简介 procs 是用 Rust 编写的 ps 替代品&#xff0c;用于显示有关任务进程的信息 首次用户 使用 x procs 即可自动下载并使用 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd…

python学完之后可以做什么,python学完可以做什么

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python学完可以做哪些工作&#xff0c;python学完之后可以做什么&#xff0c;今天让我们一起来看看吧&#xff01; Python是一种全栈的开发语言&#xff0c;你如果能学好Python&#xff0c;前端&#xff0c;后端&#x…

Spring实现IoC:依赖注入/构造注入

● 控制反转&#xff0c;反转的是什么&#xff1f; ○ 将对象的创建权利交出去&#xff0c;交给第三方容器负责。 ○ 将对象和对象之间关系的维护权交出去&#xff0c;交给第三方容器负责。 ● 控制反转这种思想如何实现呢&#xff1f; ○ DI&#xff08;Dependency Injection&…

【损失函数】Cross Entropy Loss 交叉熵损失

1、介绍 主页介绍的几种损失函数都是适用于回归问题损失函数&#xff0c;对于分类问题&#xff0c;最常用的损失函数是交叉熵损失函数 Cross Entropy Loss。它用于测量两个概率分布之间的差异&#xff0c;通常用于评估分类模型的性能。 2、公式 对于二分类问题&#xff0c;交…

SV-7042VP 15W sip网络有源音箱,可外接15W无源副音箱

SV-7042VP 15W sip网络有源音箱,可外接15W无源副音箱 一、描述 SV-7042VP是深圳锐科达电子有限公司的一款壁挂式SIP网络有源音箱&#xff0c;具有10/100M以太网接口&#xff0c;可将网络音源通过自带的功放和喇叭输出播放&#xff0c;可达到功率15W。同时它可以外接一个15W的…

【GO语言卵细胞级别教程】01.GO基础知识

01.GO基础知识 目录 01.GO基础知识1.GO语言的发展历程2.发展历程3.Windowns安装4.VSCode配置5.基础语法5.1 第一段代码5.2 GO执行的流程5.3 语法规则5.4 代码风格5.5 学习网址 1.GO语言的发展历程 Go语言是谷歌公司于2007年开始开发的一种编程语言&#xff0c;由Robert Griese…

Java版直播商城免 费 搭 建:平台规划与常见营销模式,电商源码、小程序、三级分销及详解

【saas云平台】打造全行业全渠道全场景的saas产品&#xff0c;为经营场景提供一体化解决方案&#xff1b;门店经营区域化、网店经营一体化&#xff0c;本地化、全方位、一站式服务&#xff0c;为多门店提供统一运营解决方案&#xff1b;提供丰富多样的营销玩法覆盖所有经营场景…

游戏引擎?

游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具&#xff0c;其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台&#xff0c;如Linux、…

macOS跨进程通信: XPC 创建实例

一&#xff1a;简介 XPC 是 macOS 里苹果官方比较推荐和安全的的进程间通信机制。 集成流程简单&#xff0c;但是比较绕。 主要需要集成 XPC Server 这个模块&#xff0c;这个模块最终会被 apple 的根进程 launchd 管理和以独立进程的方法唤起和关闭&#xff0c; 我们主app 进…

Flume基础知识(四):Flume实战之实时监控单个追加文件

1&#xff09;案例需求&#xff1a; 实时监控 Hive 日志&#xff0c;并上传到 HDFS 中 2&#xff09;需求分析&#xff1a; 3&#xff09;实现步骤&#xff1a; &#xff08;1&#xff09;Flume 要想将数据输出到 HDFS&#xff0c;依赖 Hadoop 相关 jar 包 检查/etc/profile.d…

Spark内核解析-Spark shuffle6(六)

1、Spark Shuffle过程 1.1MapReduce的Shuffle过程介绍 Shuffle的本义是洗牌、混洗&#xff0c;把一组有一定规则的数据尽量转换成一组无规则的数据&#xff0c;越随机越好。MapReduce中的Shuffle更像是洗牌的逆过程&#xff0c;把一组无规则的数据尽量转换成一组具有一定规则…

RFID数据中心智能资产管理系统

数据中心机房承担着保障企业关键数据处理的重要责任&#xff0c;机房的日常管理直接关系到整体机房的日常维护和运行安全&#xff0c;数据资产管理中心在监管机房各部分设备的运行情况、维护数据中心的资产方面发挥着重要的作用。 成功的数据中心机房管理不仅需要选择高可靠性…

NFT 项目入驻 NFTScan Site 流程说明

NFTScan Site 是由数据基础设施 NFTScan 推出的功能强大的 NFT 项目管理平台。NFTScan Site 主要为 NFT Collection、NFT Marketplace、NFTFi 以及其他 NFT 生态项目提供专业的项目管理后台服务和链上数据分析追踪服务。 NFTScan Site 功能&#xff1a; 1&#xff09;项目信息编…

鸿蒙开发之Touch事件拦截stopPropagation()

在读Touch事件官方文档的时候&#xff0c;遇到了一个属性 其他属性都好理解&#xff0c;这个阻塞事件冒泡什么意思呢&#xff1f;官网也没有解释 后来查资料知道这个方法是阻止onTouch冒泡传递到父组件。 show code Entry Component struct OfficialTouchPage {State messa…

Java项目:108SSM教务管理系统

博主主页&#xff1a;Java旅途 简介&#xff1a;分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 教务管理系统基于SpringSpringMVCMybatis开发&#xff0c;功能和学生成绩管理系统&#xff0c;学生选课管理系统类似&#xff0c;也可以做学生成绩管理系统…

C# .Net学习笔记—— 异步和多线程(Task)

一、概念 Task是DotNet3.0之后所推出的一种新的使用多线程的方式&#xff0c;它是基于ThreadPool线程进行封装的。 二、使用多线程的时机 任务能够并发运行的时候&#xff0c;提升速度&#xff1b;优化体验 三、基本使用方法 private void button5_Click(object sender, Ev…

Mysql 动态链接库配置步骤+ 完成封装init和close接口

1、创建新项目 动态链接库dll 2、将附带的文件都删除&#xff0c;创建LXMysql.cpp 3、项目设置 3.1、预编译头&#xff0c;不使用预编译头 3.2、添加头文件 3.3、添加类 3.4、写初始化函数 4、项目配置 4.1、右键解决方案-属性-常规-输出目录 ..\..\bin 4.2、生成lib文件 右…