vue2.0 练习项目-外卖APP(2)
2018-06-24 00:38:45来源:未知 阅读 ()
今天终于把商品页和购物车功能弄出来了,在这个开发过程中遇到一些小坑,比如购物车和商品页是分开两个组件的,没有利用到vue的双向数据绑定的特性,导致在操作加减商品数量时两个组件的数据没有同步,后来我就重写了一遍,好好的利用了vuex的状态保持,这个东西真的很好用。先秀一段我写的vuex代码吧!
1 //状态管理 2 export default (Vuex) => { 3 return new Vuex.Store({ 4 state: { 5 totalMoney: 0, //已选购商品总价格 6 productArray: [] //已选购商品数组 7 }, 8 mutations: { 9 setTotalMoney(state, num) { //设置商品总价格 10 state.totalMoney = num; 11 }, 12 mathTotalMoney(state) { //计算已选购商品总价格 13 let total = 0; 14 for (let i = 0; i < state.productArray.length; i++) { 15 let item = state.productArray[i]; 16 total += (item.count * item.price); 17 } 18 state.totalMoney = total; 19 }, 20 setProductArray(state, obj) { //商品放入或拿出购物车 21 let index = -1; 22 for (let i = 0; i < state.productArray.length; i++) { 23 var item = state.productArray[i]; 24 if (obj.id == item.id) { 25 index = i; 26 break; 27 } 28 } 29 if (index >= 0) { 30 if (obj.count <= 0) { 31 state.productArray.splice(index, 1); 32 } else { 33 state.productArray[index] = obj; 34 } 35 } else { 36 state.productArray.push(obj); 37 } 38 }, 39 clearProduct(state) { //清空购物车 40 state.productArray = []; 41 } 42 }, 43 getters: { 44 getTotalMoney(state) { //获取商品总价格 45 return state.totalMoney; 46 }, 47 getProductArray(state) { //获取已选购商品 48 return state.productArray; 49 }, 50 getProductById: (state, getters) => (id) => { //根据ID获取已选商品 51 for (let i = 0; i < state.productArray.length; i++) { 52 var item = state.productArray[i]; 53 if (item.id == id) { 54 return item; 55 } 56 } 57 return false; 58 } 59 } 60 }); 61 }
不过我总觉得,我这样的用法有点不太对的。贴个代码,希望有高手指点下,我这样使用vuex可取不。
1 import Vue from 'vue'; 2 import App from './App'; 3 import router from './router'; 4 import VueResource from 'vue-resource'; 5 import Vuex from 'vuex'; 6 import vuex_store from './store'; 7 8 Vue.use(VueResource); 9 Vue.use(Vuex); 10 11 new Vue({ 12 el: '#app', 13 router, 14 template: '<App/>', 15 components: { App }, 16 store: vuex_store(Vuex) 17 });
上面代码就是入口文件,我将来 vuex 对象再传入我自己写的那个store模块中。接着继续说我的商品页和购物车吧,贴个动图给大看看效果如何。
商品也和购物车功能,暂且就这些了。重点还是在布局上,js上的逻辑都不难。可以上我的github获取源码看看咯。
源码地址:https://github.com/codeyoyo/seller-app
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:JS实现限行
- nodejs的express自动生成项目框架的方法 2020-02-20
- Javascript的&&和||的另类用法 2020-01-07
- js判断文本框剩余可输入字数的方法 2019-12-13
- 前端下载图片 2019-08-14
- 基于 Lerna 管理 packages 的 Monorepo 项目最佳实践 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash