javascript微信小程序小米Lite个人文章

│├│├│├│├│├│├│├│├│├│├│├│├│├│└util.js├│└weui.wxss├│├Api.js│├main.js│└mock.js对于初学者来说,可能拿到设计图就立马写,其实这样很不好,写出来的代码会有很多重复的代码,这样不利于之后的维护。所以应该把一些公用的代码封装,之后直接调用就行了,之后维护起来也更加的方便。

一个程序,需要的HTTP请求会很多,如果我们每个请求都去写一个wx.request,这样写出来的代码,看起来会很冗长,他人看我们的代码时也会很累,也不利于我们之后的修改。因此为了代码的整洁,和之后的修改方便。我就把所有的API请求请求封装在wxapi文件目录下。

API封装完了,该怎么调用呢?我就以首页的banners数据为例

//index.jsconstWXAPI=require('../../wxapi/main')onLoad:function(options){WXAPI.showLoading()this.getBanners()},getBanners(){WXAPI.getBanners().then(res=>{wx.hideLoading()this.setData({banners:res.data})})},记住,如果想要发送HTTP请求数据的页面,都必须加上这一句constWXAPI=require('../../wxapi/main')

开始准备OK,现在开始写页面。第一步要写的是tabBar部分。

看起来是不是有点奇怪,为什么有点透明的感觉?因为这个tabBar组件是我自己写的。

一般来将,直接在把tabBar组件写在app.json中,就可以了。

但是我觉得不是那么好看,所以就自己撸了一个tabBar组件出来。

写完这个组件后我总解了一下,需要注意的问题.

所以我在app.js中存入了一个page属性,来存储当前页面,然后在点击事件goToPage()方法中加入判断去解决。

比如index页面

记得在json中引入组件

如何使用?

这个组件很简单,定义出来就可以直接使用,并且修改颜色和大小.

在首页中存在很多这样的商品列表,一个一个写,这样写出来的代码会导致首页的代码显得很多,并且不好维护,所以我就封装成了一个组件.

初学者,可能会说,0.5px边框,不就是border:0.5px吗,其实这是错的。

浏览器会把任何小于1px的边框都解析成1px,所以你写0.5px其实浏览器会解析成1px,这样就实现不了效果。

其实也很简单,使用伪类去画。

例如,goodList组件的右部边框.

在index页面的html中,我在包裹goodList的view标签的class中加上了rightBorder这个类来表示画出上边框。

.rightBorder::after{content:'';position:absolute;height:200%;width:1rpx;right:-1rpx;top:0;transform-origin:00;border-right:1rpxsolid#e0e0e0;transform:scale(.5);z-index:1;}其实画0.5px边框就记住。

其它还有一些细节问题就按照所需写就行。

只是我的页面中的一个列表信息,这个很简单

我这里引入的是weui组件的搜索样式。如何用

swiper和swiper-item组合起来就可以实现,一些配置信息,请查看官方文档

具体代码

data:{banners:[],indicatorDots:true,autoPlay:true,interval:3000,duration:1000,navdata:[],goodList:[],goodListOne:{},name:'',},一个常用的功能在商城小程序中经常要做一个这样的功能.例如:

功能要求:

功能要求并不难,但是对于初学者而言,可能会有些问题。我就直接说功能该怎么做

先贴出data中需要的数据

data:{categroy:[],//商品信息curIndex:'A',//当前的选中的标签toView:'A',//去到的标签//存入每个list的高度叠加heightArr:[],//最后一个list,就是最后一个标签的idendActive:'A'},点击左边右边滑动这一功能很简单就能实现

只需要在右边scroll-view组件中添加事件scroll-into-view="{{toView}}",toView就是商品显示的id

注意,右边每个商品信息,页面渲染时必须加上id属性

然后左边的scroll-view组件只需添加一个点击事件去修改toView的值就行了

//点击左边标签要修改的信息switchTab(e){this.setData({curIndex:e.target.dataset.index,toView:e.target.dataset.index})},滑动右边左边高亮对应改变首先需要计算出右边商品每一块占据的高度,并且存入数组中,可以放入onReady生命周期中

//计算出右边每个商品占据的高度getPageMessage(){//console.log(4)letself=thisletheightArr=[]leth=0constquery=wx.createSelectorQuery()query.selectAll('.right-list').boundingClientRect()query.exec(res=>{res[0].forEach(item=>{h+=item.heightheightArr.push(h)})self.setData({heightArr:heightArr})})},在右边的scroll-view组件中加上事件。bindscroll="scrollContent,这是scroll-view提供的事件,在滑动时就会触发.

//页面滑动时触发scrollContent(e){constscrollTop=e.detail.scrollTopconstscrollArr=this.data.heightArrconstlength=scrollArr.length-1letendChar=String.fromCharCode(65+length)letcurChar=this.getCurrentIndex(scrollTop)if(this.data.endActive!=endChar){this.setData({curIndex:curChar})}else{this.setData({endActive:'A'})}},//判断curIndex应该是那个getCurrentIndex(scrollTop){constscrollArr=this.data.heightArrletfind=scrollArr.findIndex(item=>{//提前10rpx触发效果returnscrollTop

但是这样的滑动并不是很完美,右边滑动到最下面,左边高亮却不是最后一个

相对完美效果就是这样

想要完美一点就要在,右边scroll-view添加一个事件:bindscrolltolower="scrollEnd"

想要实现这样的效果并不困难。

逻辑顺序:首页点击商品信息->商品详情页面显示对应的商品详情信息->购物车页面显示商品购买的商品信息.->修改之后,商品详情页面显示修改的信息。

想要实现这样的功能,必须有一个id在页面跳转时,传入给跳转的页面,跳转的页面再通过id值获取页面所需的数据

例如:首页->商品详情页

这是一条商品的列表的信息,通过点击事件bindtap="goDetails",跳到对应的页面.

goDetails(e){constid=e.currentTarget.dataset.idwx.navigateTo({url:`/pages/goodDetails/goodDetailsid=${id}`,});},商品详情页:

传入的id值可以再onLoad生命周期的options参数上获取

onLoad:function(options){WXAPI.showLoading()//获取用户的地址信息constaddress=wx.getStorageSync('Address');this.setData({id:options.id,address})this.getGoodDetail()},数据的存储逻辑我是把数据直接存在本地缓存中(也可以直接存入到云数据库中),使用的是wx.setStorage()

在本地存入了两个数据,一个是所有购买的商品信息,一个是总的商品购买数量

对比一下上面两张图的区别.

在购物页面中选的商品数量和具体的商品信息,之后跳转回商品详情页面中,对应的数据会修改

已选{{default_change.name}}{{default_change.memory}}{{default_change.color}}×{{default_change.num}}{{allNum}}上面时两块修改的html结构

在购物页面点击确认之后,我默认就把商品添加到购物车中,并且位于数据的最后一条

返回商品详情页面时,会重新触发onShow生命周期的函数。

所以我只需要,在onShow中触发修改方法就行.

这一个三角形是使用CSS画出来的,并不是图标。

使用CSS画出一个三角形,也不是那么困难。使用的是伪类和border属性

想要获取用户的经纬度信息,可以使用wx.getLocation(),就可以获取用户的经纬度信息了.

THE END
1.社区对象ID 2021004183633920 时间 2024-11-14 17:31 记录ID 2024111400102000000088229614 问题类型 资金风险-...https://open.alipay.com/portal/forum/post/189501014
2.常见错误ContentAPIforShoppingGoogleforDevelopers摘要 方括号中指定的项无效。 常见原因 不适用 处理建议 修复问题商品的规范。有关详情,请参阅 Feed 规范帮助中心文章。 预防建议 不适用 notFound Item not found 摘要 您尝试获取、更新或删除的商品不存在。 常见原因 尝试删除不存在的商品,或者未在网址中正确指定要删除的商品 ID。 处理建议 使用 Products.lis...https://developers.google.cn/shopping-content/guides/how-tos/common-errors?hl=zh-cn
3.头条文章部分内容的使用可能会涉及收费,请读者谨慎付费内容。 冷芸本人不为以下任何的付费内容负责。 书籍 (图片来自unsplash) 服装史论(全时尚人士必读) 大部分的阅读者喜欢阅读技巧类的书籍。如果想要深刻了解时尚的本质,无论你是设计师、买手、编辑还是营销、公关,你都应该先从服装相关的历史与理论入手。它们会让你看到服装...https://card.weibo.com/article/m/show/id/2309404586382453506199
1.POS机出现无效商户号是什么意思?1、商户号已注销:如果商户号已经被注销,那么再次使用它进行交易时,POS机就会显示“无效商户号”,这通常是因为商户已经停止营业或者支付机构已经终止了与该商户的合作。 2、商户号未激活:新开通的商户号需要经过激活才能使用,如果没有进行激活操作,那么POS机也会显示“无效商户号”。 3、支付机构问题:有时,支付机构...https://www.xipos.cn/m/54102.html
2.Allegro帮助中心Allegro问题大全Temu半托管Temu全托管速卖通半托管速卖通全托管lazada全托管Shopee全托管TikTok全托管亚马逊全托管TikTok美国站SheinTikTokJumia开店Shopee开店Fruugo开店eprice开店OnBuy开店nocnoc开店Lazada开店美客多开店OZON开店Newegg开店eMAG开店PerFee开店Allegro开店Fnac开店 Wayfair开店ManoMano开店Etsy开店日本乐天开店Fordeal开店沃尔玛开店Gmarket...https://www.cifnews.com/help/114
3.劳斯莱斯汽车:WHISPERS用户使用协议请注意,如果您的账户项下尚有任何您应支付但尚未支付的款项或者有任何您已支付但尚未履行完毕的交易(包括通过专享礼宾服务进行的商品或服务交易),您将暂时无法注销您的Rolls-Royce ID (劳斯莱斯 ID),直至该等款项被全部结清或交易已全部履行完毕。 4.WHISPERS服务一般性规定...https://www.rolls-roycemotorcars.com.cn/zh-CN/ownership/whispers-agreement.html
4.浙江高院:“搬家软件”未经授权爬取淘宝商品数据,构成不正当竞争3.6.4【数据使用】淘宝推出的所有官方产品、技术、软件、程序、数据及其他信息(包括文字、图标、图片、照片、音频、视频、图标、色彩组合、版面设计等)的所有权利(包括著作权、商标权专利权、商业秘密及其他相关权利)均归淘宝及其关联公司所有。 2.淘宝平台对商家发布商品信息的相关规范...https://county.beijingip.cn/my/websiteArticle/detailArticle.do?id=401fe2c28cd87548018d77fe5b5e0234
5.淘宝开店考试试题及答案7篇(全文)C、敌敌畏 D、饲料级硫酸铜、下列哪一项不是淘宝卖家必须做到的?A A、宝贝页面的描述,应该与商品的实际情况相符 B、遵守淘宝规则,遵守对买家的服务承诺 C、每天都要重新发布商品 D、出售的商品,在合理期间内不存在影向正常使用的质量问题 32、一般违规行为多少分为一个处罚节点?C A、10 分 B、16 分 C、12...https://www.99xueshu.com/w/filexe3jvsro.html
6.隐私政策如您在使用区块链提单服务功能时,您需要提交公司信息、公司盖章信息、提货人姓名、身份证号码、手机号码、车牌号以便于完成区块链提单服务功能。我们将收集上述信息。 上述信息为商品交付环节中验证提货者身份、保障货物安全交付的必要信息,如您不能或拒绝提供上述信息,将无法为您完成商品交付服务,但不会影响您使用其他功...https://gzeasypay.com/page/privacy-policy-cn
7.小红书B站抖音等各平台违禁词盘点-严禁使用的不文明用语- 蛋疼、你妹、绿茶婊、屌爆了等上升辱骂、人身攻击、带有不文明色彩的词语。 -医疗用语(普通商品,不含特殊用途化妆品、保健食品、医疗器械)- l 、全面调整人体内分泌平衡;增强或提高免疫力;助眠;失眠;滋阴补阳;壮阳; 2 、消炎;可促进新陈代谢;减少红血丝;产生优化细胞结构;修复受损肌肤;...https://wpok.cn/579746.html
8.淘宝考试题目与答案规则频道右侧栏目是每天都要重新发布商品 出售的商品,在合理期间内不存在影向正常使用的质量问题 2、一个淘宝会员能在淘宝开几家店? 三家 一家 两家 没限制 3、淘宝的违规行为分哪两种? 一般违规行为和严重违规行为 普通违规行为和特殊违规行为 少数违规行为和多数违规行为 ...https://blog.csdn.net/wcqlwyt/article/details/80631776
9.大数据常见面试问题汇总江阴雨辰互联2.15.7 哪个商品卖的好? 2.15.8 数据仓库每天跑多少张表,大概什么时候运行,运行多久? 2.15.9 哪张表数据量最大 2.15.10 哪张表最费时间,有没有优化 2.15.11 并发峰值多少?大概哪个时间点? 2.15.12 分析过最难的指标 2.15.13 数仓中使用的哪种文件存储格式 ...https://www.yc00.com/news/1698791689a880360.html
10.掌舵跨境电商:虾皮产品上架下架及更新排查常见问题第七种:商品变种选项超过系统限制(TW站点限制50,其他站点限制20) 解决办法:删除多余变种选项后即可编辑。 二、批量更新/上传的问题 一)批量上传产品 1.当文件上传后显示失败,重试后仍然无效,我应该怎么做? 解决: 这是因为卖家所上传的模板含有不符合格式的字段,或者是没有使用下载好的原模版,比如(长,宽,高)部分...https://cloud.tencent.com/developer/news/704073
11.中国特色的快速无菌检查法规拟发布,细胞类制品按下产业快进键...应至少符合下列条件之一,判为试验无效: (1) 无菌检查试验所用的设备及环境的微生物监控结果不符合无菌检查法的要求。 (2) 回顾无菌试验过程,发现有可能引起微生物污染的因素。 (3) 在阴性对照中观察到微生物生长。 (4) 供试品管中生长的微生物经鉴定后,确证是因无菌试验中所使用的物品和(或)无菌操作技术不...https://maimai.cn/article/detail?fid=1681389477&efid=SNIhDXTqPPCl_W-60w6MIQ
12.基于博客的生活作文(精选十篇)通常定义为:博客是一个新型的个人互联网出版工具, 是网站应用的一种新方式, 它是一个网站, 它为每一个人提供了一个信息发布、知识交流的传播平台, 博客使用者可以很方便地用文字、链接、影音、图片建立起自己个性化的网络世界。其具有“零技术”、“零成本”等特点, 学生只要会打字, 有邮箱, 就可以拥有自己的...https://www.360wenmi.com/f/cnkeyz0crw80.html