基于vuex实现购物车功能
导读:收集整理的这篇文章主要介绍了基于vuex实现购物车功能,觉得挺不错的,现在分享给大家,也给大家做个参考。 本文实例为大家分享了vuex实现购物车功能的具体代码,供大家参考,具体内容如下先...
收集整理的这篇文章主要介绍了基于vuex实现购物车功能,觉得挺不错的,现在分享给大家,也给大家做个参考。 本文实例为大家分享了vuex实现购物车功能的具体代码,供大家参考,具体内容如下
先看效果:
代码:
template>
div class="Home">
h1>
vuex购物车案例/h1>
add-From>
/add-from>
shop-cart>
/shop-cart>
/div>
/template>
script>
import AdDFrom from './Add.vue'import ShopCart from './ShopCart.vue'// @ is an alias to /src// import HelloWorld from '@/components/HelloWorld.vue'export default {
name: 'Home', components: {
AddFrom, ShopCart }
,}
;
/script>
style>
table {
width: 800px;
margin: 0 auto;
border: 1px solid #ccc;
border-spacing: 0;
}
tbody th,tbody td {
border: 1px solid #ccc;
text-align: center;
}
h1{
text-align: center;
}
.add{
width: 800px;
margin: 0 auto;
}
/style>
父组件
template>
div class="add">
div class="from-group">
label for="">
商品编号/label>
input tyPE="text" v-model="shop.id" placeholder="请输入商品编号">
/div>
div class="from-group">
label for="">
商品名称/label>
input type="text" v-model="shop.name" placeholder="请输入商品名称">
/div>
div class="from-group">
label for="">
商品价格/label>
input type="text" v-model="shop.PRice" placeholder="请输入商品价格">
/div>
div class="from-group">
label for="">
商品数量/label>
input type="text" v-model="shop.count" placeholder="请输入商品数量">
/div>
div class="from-group">
button @click="add">
添加商品/button>
/div>
/div>
/template>
script>
export default {
name: 'add', data() {
return {
shop:{
}
}
;
}
, methods:{
add(){
this.$Store.dispatch("addShopList",this.shop) this.shop = {
id:"", name:"", price:"", count:"" }
}
}
}
;
/script>
style scoped>
.add{
width: 800px;
text-align: center;
}
/style>
```bash
template>
div class="Shop-Cart">
table>
thead border>
tr>
th>
商品编号/th>
th>
商品名称/th>
th>
商品价格/th>
th>
商品数量/th>
th>
小计/th>
th>
操作/th>
/tr>
/thead>
tbody v-if="shop.length >
0">
tr v-for="(i, e) in shop" :key="e">
td>
{
{
i.id }
}
/td>
td>
{
{
i.name }
}
/td>
td>
{
{
i.price }
}
/td>
td>
button @click="add(e)">
+/button>
input type="text" v-model="i.count" />
button @click="delet(e)">
-/button>
/td>
td>
¥{
{
i.price * i.count }
}
/td>
td>
button @click="del(e)">
删除/button>
/td>
/tr>
/tbody>
tfoot>
tr>
td colspan="6" align="right">
总计:{
{
total }
}
/td>
button @click="clear">
清除购物车/button>
/tr>
/tfoot>
/table>
/div>
/template>
script>
export default {
name: 'Shop-Cart', components: {
}
, data() {
return {
}
;
}
, computed: {
shop() {
return this.$store.getters.getlist;
}
, total() {
return this.$store.getters.getShopTotal;
}
}
, methods: {
del(e) {
// this.$store.dispatch() this.$store.dispatch('remoteList', e);
}
, add(e) {
this.$store.dispatch('addList', e);
}
, delet(e) {
this.$store.dispatch('deleteList', e);
}
, clear() {
this.$store.dispatch('clearList', []);
}
}
}
;
/script>
vuex组件
import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({
state: {
list: [{
id: 1, name: "哇哈哈", price: 3, count: 0 }
, {
id: 2, name: "哇哈", price: 3, count: 0 }
] }
, getters: {
//获取购物车数据 getlist(state) {
return state.list }
, //商品的总价 getShopTotal(state,index) {
let result = 0;
state.list.foreach((ITem, index) =>
{
result += item.price * item.count }
) return result }
, }
, mutations: {
//删除购物车单个数据 remoteList(state,index) {
state.list.splice(index, 1);
console.LOG("aaa",state) }
, //商品数量增加 addList(state, index) {
state.list[index].count++;
}
, //商品数量减少 deleteList(state, index) {
state.list[index].count--;
if(state.list[index].count=0){
state.list[index].count = 0 return ;
}
}
, //清除购物车 clearList(state, arr) {
state.list = arr }
, addShopList(state,shop){
state.list.push(shop) }
}
, //使用actions调用Mutations方法 actions: {
remoteList({
commit }
, index) {
commit("remoteList", index) }
, addList({
commit }
, index) {
commit("addList", index) }
, deleteList({
commit }
, index) {
commit("deleteList", index) }
, clearList({
commit }
, arr) {
commit("clearList", arr) }
, addShopList({
commit}
,shop){
commit("addShopList",shop) }
}
, modules: {
}
}
)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:- Vuex实现简单购物车
- Vuex实现购物车小功能
- vuex实现购物车的增加减少移除
- vuex实现购物车功能
- 使用vuex较为优雅的实现一个购物车功能的示例代码
- vuex实现的简单购物车功能示例
- 用vuex写了一个购物车H5页面的示例代码
- vuex实现简单的购物车功能
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 基于vuex实现购物车功能
本文地址: https://pptw.com/jishu/594016.html
