前言关于小程序,送给即将阅读的你一句话——世界上没有陷阱,只是会有更多的路;世界上没有路,陷阱多填,你就会有。嗯~~~第一次做仿小程序项目,历经“磨难”,说出的心声。好了,废话不多说,进入正题。.写什么这次分享的对象是商城小程序——仿小米商城精简版。商城小程序的主要功能有哪些?其实只有几个点,clickandsee(实时查看详情)seeandbuy(加入购物车或立即购买)searchseeandbuy(精准搜索)详细解释:1:查看详情真实timeSmallmalls因为程序是一个网购平台,必须列出大量复杂的商品,形成多类目、层层嵌套的结构。如何点击查看?这是我开始模仿这个小程序遇到的第一个大问题。是不是应该为每个商品一一写一个对应的详情页?让我们看一下页面。首先,一个一个写一个对应的详情页,非常费时费力。代码简洁是每个程序员追求的品质;其次,小程序代码包的大小限制了你重复过多的代码。解决方案:设计一个详情页模板(比如效果图)。具体页面wxml代码就不写了,(后面会给出源码链接)我们主要分析js中的数据传输:返回产品页面:toDetail:function(e){varindex=e.currentTarget.dataset。指数;//console.log(index)vardetail=this.data.goodsList[index];//console.log(detail)app.globalData.detail=detail;//console.log(app.globalData.detail)this.setData({detail:detail})wx.navigateTo({url:'../../buy/buy',})}globalData:{userInfo:null,detail:[],tocartMsg:[]}每次点击,获取对应的数据值,将获取到的值放入app.globalData(detail)中预先设置好的空数组中,注意这里是直接获取值赋值给detail,这样可以保证每一个被点击的商品的信息都被放入detail中,并且detail中的数据不会保存上次获取的商品详情信息,这样可以实时更新数据,非常重要!!因为在详情页获取到详情中的数据,保证获取到的是最新的数据,从而实现点击查看的效果。接下来详情页模板获取数据onLoad:function(options){//letid=options.currentTarget.dataset.id;this.setData({goodds:app.globalData.detail})//console.log(this.data.goodds)这样完成数据传输2:加入购物车用户在详情页点击实时查看,当然必须实现购物功能,否则整个小程序就没有意义。tocart:function(){this.setData({toCartMsg:this.data.goodds})app.globalData.tocartMsg.push(this.data.toCartMsg);wx.showToast({title:'Addedtoshoppingcart',icon:'success',duration:2000})}同样,我们在app.globalData中设置一个空数组tocartMsg,解释一下为什么要放在globalData中,原因是app.js文件的作用是监控和处理小程序的生命周期函数,以及全局变量的声明,方便我们提前参考这个小社区的同志们无私分享的数据。/***生命周期函数--监控页面显示*/onShow:function(){this.setData({car??Msg:[...app.globalData.tocartMsg]})console.log(this.data.carMsg)}最后,每次页面显示时,都会获取新加入购物车的商品信息,因为不能只获取一次。购买产品后,发现还有一根手指没有被砍断。如果要再做,那么会返回到页面继续购买,所以放在onShow中是很合适的。三:精准搜索先看效果
