亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vuex實現的簡單購物車功能示例

2019-11-19 12:09:14
字體:
來源:轉載
供稿:網友

本文實例講述了vuex實現的簡單購物車功能。分享給大家供大家參考,具體如下:

購物車組件

<template>  <div>    <h1>vuex-shopCart</h1>    <div class="shop-listbox">      <shop-list/>    </div>    <h2>已選商品</h2>    <div class="shop-cartbox">      <shop-cart/>    </div>  </div></template><script>  import shopList from "./shop-list";  import shopCart from './shop-cart';  export default{    name:'shop',    components:{      'shop-list':shopList,      'shop-cart':shopCart    }  }</script>

商品列表

<template>  <div class="shop-list">    <table>      <tr class="shop-listtitle">        <td>id</td>        <td>名稱</td>        <td>價格</td>        <td>操作</td>      </tr>      <tr v-for="item in shopList" class="shop-listinfo">        <td>{{item.id}}</td>        <td>{{item.name}}</td>        <td>{{item.price}}</td>        <td><button @click="addToCart(item)">加入購物車</button></td>      </tr>    </table>  </div></template><script>  import{mapActions} from "vuex";  export default{    name:'shopList',    data(){      return{      }    },    computed:{      shopList(){        return this.$store.getters.getShopList      }    },    methods:{      ...mapActions(['addToCart'])    }  }</script><style lang="less" scoped>  @import url('../../static/public.less');</style>

選中商品列表

<template>  <div class="shop-list">    <table>      <tr class="shop-listtitle">        <td>id</td>        <td>名稱</td>        <td>價格</td>        <td>數量</td>        <td>操作</td>      </tr>      <tr v-for="item in cartData" class="shop-listinfo">        <td>{{item.id}}</td>        <td>{{item.name}}</td>        <td>{{item.price}}</td>        <td>{{item.num}}</td>        <td><button class="shop-dele dele-btn" @click="deletShop(item)">刪除</button></td>      </tr>      <tr v-if="cartData.length<=0">        <td colspan="5">暫無數據</td>      </tr>      <tr>        <td colspan="2">總數:{{totalNum}}</td>        <td colspan="2">總價格:{{totalPrice}}</td>        <td><button class="dele-cart dele-btn" @click="clearCart">清空購物車</button></td>      </tr>    </table>  </div></template><script>  import {mapGetters,mapActions} from "vuex";  export default{    name:'shopCart',    data(){      return{      }    },    computed:{      ...mapGetters({        cartData:'addShopList',        totalNum:'totalNum',        totalPrice:'totalPrice'      })    },    methods:{      ...mapActions({        clearCart:'clearToCart',        deletShop:'deletToShop'      })    }  }</script><style lang="less" scoped>  @import url('../../static/public.less');  .dele-btn{    background-color: red !important;  }  .dele-btn:hover{    background-color: #bd0000 !important;  }</style>

vuex 創建

npm install vuex --save,創建vuex文件夾,在文件夾中創建store.js,引入vuex;

import Vue from "vue";import Vuex from 'vuex';import cart from "./modules/cart";Vue.use(Vuex);export default new Vuex.Store({  modules:{    cart  }})

建立一個模塊文件夾modules,里面創建創建當個store模塊,然后默認輸出,在store.js中引入;

const state = {  shop_list: [{    id: 11,    name: '魚香肉絲',    price: 12,  }, {    id: 22,    name: '宮保雞丁',    price: 14  }, {    id: 34,    name: '土豆絲',    price: 10  }, {    id: 47,    name: '米飯',    price: 2  },{    id: 49,    name: '螞蟻上樹',    price: 13  },  {    id: 50,    name: '臘肉炒蒜薹',    price: 15  }],  add:[]}const getters ={  //獲取商品列表  getShopList:state => state.shop_list,  //獲取購物車列表  addShopList:state => {    return state.add.map(({id,num})=>{      let product = state.shop_list.find(n => n.id == id);      if(product){        return{          ...product,          num        }      }    })  },  //獲取總數量  totalNum:(state,getters) =>{    let total =0;    getters.addShopList.map(n=>{      total += n.num;    })    return total;  },  //計算總價格  totalPrice:(state,getters)=>{    let total=0;    getters.addShopList.map(n=>{      total += n.num*n.price    })    return total;  },}const actions={  //加入購物車  addToCart({commit},product){    commit('addCart',{      id:product.id    })  },  //清空購物車  clearToCart({commit}){    commit('clearCart')  },  //刪除單個物品  deletToShop({commit},product){    commit('deletShop',product)  }}const mutations ={  //加入購物車  addCart(state,{id}){    let record = state.add.find(n => n.id == id);    if(!record){      state.add.push({        id,        num:1      })    }else{      record.num++;    }  },  //刪除單個物品  deletShop(state,product){    state.add.forEach((item,i)=>{      if(item.id == product.id){        state.add.splice(i,1)      }    })  },  //清空購物車  clearCart(state){    state.add=[];  }}export default{  state,  getters,  actions,  mutations}

希望本文所述對大家vue.js程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黄色成人在线免费| 精品亚洲一区二区三区| 亚洲国产天堂网精品网站| 国产精品91久久久| 欧美成年人视频网站| 在线日韩精品视频| 久久久久久久一区二区三区| 亚洲第一福利网| 中文字幕亚洲欧美| 大荫蒂欧美视频另类xxxx| 欧美性色xo影院| 欧美一级视频免费在线观看| 久久影视三级福利片| 国产精品99久久久久久www| 神马久久桃色视频| 九九热99久久久国产盗摄| 久久99久久亚洲国产| 成人欧美一区二区三区在线| 亚洲国产精品资源| 国产精品无av码在线观看| 国产精品视频播放| 亚洲成人激情图| 中文字幕精品一区久久久久| 91视频国产一区| 欧美一区二区三区艳史| 亚洲а∨天堂久久精品9966| 亚洲qvod图片区电影| 欧美性生交大片免网| 美日韩丰满少妇在线观看| 日韩激情av在线播放| 日韩毛片在线看| 国产精品一区二区性色av| 日韩精品一区二区三区第95| 91精品久久久久久久久不口人| 国产91精品黑色丝袜高跟鞋| 91av网站在线播放| 亚洲美女福利视频网站| 欧美影院成年免费版| 午夜欧美大片免费观看| 欧美成人四级hd版| 亚洲成人精品视频| 欧美大片第1页| 亚洲欧洲av一区二区| 亚洲电影免费观看高清完整版在线观看| 国产精品爱久久久久久久| 亚洲国产精品嫩草影院久久| 精品性高朝久久久久久久| 久久噜噜噜精品国产亚洲综合| 亚洲自拍偷拍在线| 精品国产自在精品国产浪潮| 日本一区二区在线免费播放| 国产精品永久在线| 国产成+人+综合+亚洲欧美丁香花| 91精品国产九九九久久久亚洲| 欧洲一区二区视频| 懂色av中文一区二区三区天美| 欧美黑人一区二区三区| 亚洲18私人小影院| www.亚洲成人| 久久97精品久久久久久久不卡| 国产精品久久久久久久久粉嫩av| 在线视频国产日韩| 国内外成人免费激情在线视频| 深夜精品寂寞黄网站在线观看| 日韩欧美在线免费| 国产精品日本精品| 亚洲伊人久久大香线蕉av| 国产精品欧美亚洲777777| 欧美精品激情视频| 久久精品国产91精品亚洲| 欧美日韩免费区域视频在线观看| 日韩理论片久久| 狠狠操狠狠色综合网| 久久激情五月丁香伊人| 国产91亚洲精品| 久久久久久亚洲精品不卡| 国产精品r级在线| 亚洲国产日韩精品在线| 精品视频偷偷看在线观看| 91亚洲国产成人久久精品网站| 亚洲成年人在线播放| 亚洲乱码一区av黑人高潮| 中文字幕日韩av电影| 国产精品普通话| 91精品久久久久久久久久久| 亚洲直播在线一区| 精品国产一区二区三区久久狼黑人| 欧美性猛交xxxx黑人| 久久久日本电影| 国产精品网站大全| 日韩中文字幕不卡视频| 久久久99免费视频| 中文字幕日韩av电影| 俺也去精品视频在线观看| 4k岛国日韩精品**专区| 国产成人aa精品一区在线播放| 亚洲片在线观看| 国产精品狼人色视频一区| 欧美日韩国产二区| 久久成人18免费网站| 亚洲国产古装精品网站| 国产精品v片在线观看不卡| 久久在线免费观看视频| 色与欲影视天天看综合网| 亚洲精品日韩激情在线电影| 国产精品丝袜一区二区三区| 高清欧美性猛交xxxx| 在线播放日韩专区| 97精品在线视频| 欧美大片va欧美在线播放| 久青草国产97香蕉在线视频| 国产一区二区三区18| 欧美成人午夜激情| 国产精品永久免费观看| 国产午夜精品免费一区二区三区| 欧美三级欧美成人高清www| 久久91亚洲精品中文字幕| 日韩亚洲成人av在线| 亚洲欧洲中文天堂| 亚洲视频国产视频| 欧洲精品在线视频| 久久久999国产| 亚洲日本成人女熟在线观看| 国产精品美女网站| 国产成人精品在线| 91精品国产综合久久香蕉| 久久久国产成人精品| 亲子乱一区二区三区电影| 亚洲黄色av女优在线观看| 日韩av在线免费| 国产精品18久久久久久首页狼| 亚洲色图激情小说| 国产一区二区三区四区福利| 国产精品∨欧美精品v日韩精品| 日韩经典中文字幕| 国产精品久久99久久| 欧美激情视频在线免费观看 欧美视频免费一| 成人激情视频在线观看| 亚洲第一av网站| 国产精品96久久久久久又黄又硬| 亚洲女人天堂色在线7777| 欧美日本精品在线| 国产精品aaa| 欧美激情中文字幕乱码免费| 激情成人中文字幕| 国色天香2019中文字幕在线观看| 97婷婷涩涩精品一区| 国产亚洲精品激情久久| 狠狠色噜噜狠狠狠狠97| 成人欧美一区二区三区在线| 亚洲va欧美va在线观看| 91在线观看免费高清| 欧美一级电影免费在线观看| 精品调教chinesegay| 911国产网站尤物在线观看| 国产精品久久999| 欧美xxxx做受欧美| 91久久精品美女高潮| 久久久久久亚洲精品不卡| 性色av一区二区三区红粉影视| 国产一区二区三区在线播放免费观看| 成人美女免费网站视频| 亚洲第一页中文字幕| 国产精品久久久久久超碰|