vuex的购物车效果 index.js
import Vue from 'vue';
import Vuex, {
Store
} from 'vuex';
import { stat } from 'fs'; Vue.use(Vuex);
let store = new Store({
state:{
list: [
{ id:1,
count: 0,
price: 10,
goodsname: '橘子'
},
{ id:2,
count: 0,
price:8,
goodsname: '苹果'
},
{ id:3,
count: 0,
price:4,
goodsname: '香蕉'
},
{ id:4,
count: 0,
price:4,
goodsname: '桃子'
}
],
sum:0,
price:0 },
getters: {
sellPrice(state) {
return (ind)=>{ //getters 传参
return state.list[ind].price * state.list[ind].count;
}
},
mycount(state){
state.sum=0; //必须初始化每次的数量
for(let i= 0;i<state.list.length;i++){//遍历总数
let num = state.list[i].count;
state.sum+=num
}
return state.sum;
},
allPrice(state){
state.sum=0;//必须初始化每次的数量确保每次遍历的值都是准确的
state.price=0;//必须初始化每次的价格确保每次遍历的值都是准确的
for(let i= 0;i<state.list.length;i++){ //遍历总数
let num = state.list[i].count;
let price = state.list[i].price;
state.price += num*price;
}
return state.price;
}
},
mutations: {
add(state,ind) { //进行数量的增加
state.list[ind].count++;
},
del(state,ind) { //进行数量的
if (state.list[ind].count === 0) {
state.list[ind].count === 0;
} else {
state.list[ind].count--;
}
}
}
})
export default store;
app.vue
<template>
<div id="app">
<table class="table">
<tr>
<td>商品</td>
<td>价格</td>
<td>数量</td>
<td colspan="3"></td>
</tr>
<tr v-for='(item,ind) in list' :key="ind">
<td> {{item.goodsname}}</td>
<td>{{item.price}}/斤</td>
<td><input type="text" v-model.number="item.count" class="num" ></td>
<td>总价{{sellPrice(ind)}}</td>
<td>
<button @click="add(ind)">add</button>
</td>
<td><button @click="del(ind)">del</button></td>
</tr>
<tr>
<td colspan="2"></td>
<td>
<span>总量{{mycount}}</span>
</td>
<td>
<span>结算{{allPrice}}</span>
</td>
</tr>
</table>
</div>
</template> <script>
import { mapGetters, mapState, mapMutations, mapActions } from "vuex";
export default {
name: "App",
computed: {
...mapGetters(["sellPrice", "mycount", "allPrice"]),
...mapState(["list"])
},
created() {},
methods: {
...mapMutations(["add", "del"])
}
};
</script> <style>
#app {
font-family: "Avenir", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
ul {
list-style: none;
margin: 0;
padding: 0;
}
.num {
max-width:100px;
width: 20px;
display: inline-block;
height: auto;
outline: none;
text-align: center;
}
.table {
width: 500px;
overflow: hidden;
background: skyblue;
}
tr,td{
width: 100px;
text-align: center;
border: none;
border: 1px solid black;
}
</style>
vuex的购物车效果 index.js的更多相关文章
- 踩坑记录-nuxt引入vuex报错store/index.js should export a method that returns a Vuex instance.
错误 store/index.js代码如下: import Vue from 'vue'; import Vuex from 'vuex'; import city from './moudle/ci ...
- 用vuex实现购物车功能
效果图 展示目录结构 product组件(纯静态代码) cart组件(纯静态代码) info组件(纯静态代码) 完成以上的三个组件,现在要开始调用这些组件,在App.vue中调用 如果你的姿势正确的话 ...
- vuex中store分文件时候index.js进行文件整合
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); import getters from './getters.js' impo ...
- angularjs购物车效果
用angularjs写了一个购物车效果中. html代码: <div png-app="myAp" ng-controller="conTroll"> ...
- vuex实现购物车功能
购物车功能描述: 1. 点击+,-按钮,“已选:xx件”随之增减 2. checkbox选中时,当前项的已选数量增加到头部“已选择xx件”中,未选中时数量不计入 代码: 服务端 node+koa+ko ...
- jQuery实现购物车效果
简单的购物车效果 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- JavaScript实现的购物车效果-效果好友列表
JavaScript实现的购物车效果.当然,可以在许多地方使用这种效果.朋友的.例如,在选择.人力资源模块,工资的计算,人才选拔等..下面来看一下班似有些车效果图: watermark/2/text/ ...
- PC,移动端H5实现实现小球加入购物车效果
HTML部分: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" ...
- 使用session页面控制登录入口及购物车效果的实现
由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容.实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只 ...
随机推荐
- openPose-注
静态编译出错:MD能通过 \ https://blog.csdn.net/Silver_sail/article/details/40540887 E:\project\BodyPoseEstimat ...
- [WeChall] Training: Crypto - Caesar I (Crypto, Training)
Training: Crypto - Caesar I (Crypto, Training) Crypto - Caesar I As on most challenge sites, there a ...
- deeplearn.js
http://blog.csdn.net/rongxiang111/article/details/78083867 <!DOCTYPE html> <html> <he ...
- Xmind8 破解
链接: https://pan.baidu.com/s/1IaNyngxJnKDQ0dNqPasA7w 提取码: g3q2 步骤1: 下载安装XMind 8 . 百度网盘下载: https://pan ...
- 环境变量配置的作用和区别:Path、Classpath、JAVA_HOME
环境变量配置的作用和区别:Path.Classpath.JAVA_HOME 一个是零时配置,另一个是永久性配置. 零时配置的方法: 打开cmd窗口——>输入set命令,回车——>输入set ...
- 给大家推荐一个C#下文件监听器和资源管理器的示例Demo-含源码
C#下文件监听器和资源管理器的示例Demo:源码下载地址
- C语言中数组变量和指针变量
指针变量为什么需要类型? 数组变量和指针变量在使用sizeof时不同,sizeof(数组变量)是数组长度,sizeof(指针变量)是存储int的字节长度4或者8(64bit). 数组变量在参数传递中, ...
- CIFAR-10数据集图像分类【PCA+基于最小错误率的贝叶斯决策】
CIFAR-10和CIFAR-100均是带有标签的数据集,都出自于规模更大的一个数据集,他有八千万张小图片.而本次实验采用CIFAR-10数据集,该数据集共有60000张彩色图像,这些图像是32*32 ...
- js 对象与数组相互转化的快捷方法 Object.keys()、Object.values()、Object.entries()
Object.keys() Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object上面可直接枚举的属性.这些属性的顺序与手动遍历该对象属性时的一致. 例如: let ...
- 《Spring Boot 入门及前后端分离项目实践》系列介绍
课程计划 课程地址点这里 本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发 ...