当前位置: 首页 > Web前端 > HTML

uniapp开发的技能点组织

时间:2023-03-28 16:00:34 HTML

图形验证码的请求方法this.loginCodeSrc=`${BASE_API}/code/loginCode?uid=${this.timeStamp}`;倒计时60scountdown(){让timeL=60;让那个=这个;this.codeDisable=true;this.timer=setInterval(()=>{timeL--;if(timeL==0){clearInterval(that.timer);that.codeDisable=false;that.codeTips=`获取验证码`;}else{that.time=timeL;that.codeTips=`Countdown${timeL}s`;}},1000)},switch-casestatusTitleAdapter(status)的优化写法{letstatusMap={'1':'Orderplaced','2':'发货','3':'取件','4':'运输','5':'送货','6':'签收','7':''};返回statusMap[status+''];},uview框架中修改组件默认样式的方式///deep/.u-button,u-button为组件名/deep/.u-button{display:flex;对齐-自我:中心;背景色:#a65342;高度:68rpx;保证金:055rpx;字体大小:30rpx;边界半径:6rpx;颜色:#FFFFFF;}导航栏的高度margin-top:calc(var(--status-bar-height)+88rpx);space防止事件透传@click.native.stop=""returntotop//返回顶部backToTop(){uni.pageScrollTo({scrollTop:0,duration:100});},textlabeltextonlydisplaystwolines//textonlydisplaystwolinesdisplay:-webkit-box;-webkit-box-orient:垂直;-webkit-line-clamp:2;overflow:hidden;uniapp数组数据修改的交互是shallowcopy引起的,使用deep复制复制可以解决Git下查看代码量问题:gitlog--author="ningjianwen"--since=2022-04-11--before=2022-06-07--pretty=tformat:--numstat|awk'{添加+=$1;潜艇+=2;loc+=$1+$2}END{printf"添加行:%s,删除行:%s,总行数:%s\n",add,subs,loc}'-;在scss模式下,按如下方式设置背景色带透明度即可生效,在less模式下编译报错。rgba($color:#ffc663,$alpha:0.4)文字溢出显示省略号//overflowhiddenoverflow-x:hidden;//溢出显示text-overflow:ellipsis;//一行文字不换行直到遇到换行符空白:nowrap;uniapp返回上一页的方法:goback(){letcanNavBack=getCurrentPages();if(canNavBack&&canNavBack.length>1){uni.navigateBack({delta:1});}其他{历史。后退();}},格式化日期,计算倒计时库时刻,示例方法如下://待付款,计算剩余时间if(that.orderDetails.orderStatus=='1'){if(that.orderDetails.expirationTime){让日期=that.orderDetails.expirationTime;that.orderDetails["remainingTime"]=this.moment(date).diff(newDate().getTime());}else{that.orderDetails["remainingTime"]="0";}}删除数组数据时,不能边遍历边删除,虽然程序不会报错,但是删除的结果是删除的数据少了,不影响遍历和2.)正序遍历时,在删除数据的循环中,索引必须减一才能恢复,以免造成数据遍历时遗漏数据。3.)使用filter过滤目标数组数据,在使用图片时,无论图片的填充方式是widthFix还是heightFix,最好设置图片的最大宽度或最大高度,防止用户上传图片时页面布局混乱图像异常。日期格式化函数(将接收到的日期格式化为“HH:mm,昨天HH:mm,MM-ddHH:mm,yyyy-MM-ddHH:mm”):formatTime(value){varformat=(function(){functionfix(str){str=''+(String(str)||'');returnstr.length<=1?'0'+str:str;}varmaps={'yyyy':function(date){returndate.getFullYear()},'MM':function(date){returnfix(date.getMonth()+1);},'dd':function(date){returnfix(date.getDate())},'HH':function(date){returnfix(date.getHours())},'mm':function(date){returnfix(date.getMinutes())},'ss':function(date){returnfix(date.getSeconds())}}vartrunk=newRegExp(Object.keys(maps).join('|'),'g');返回函数(值,格式){如果(!值){返回'--';}格式=格式||'yyyy-MM-ddHH:mm';值=数字(值);值=新日期(值);returnformat.replace(trunk,function(capture){returnmaps[capture]?maps[capture](value):'';});}})if(value==''||value==undefined)return'--';vartime=newDate(value),now=newDate(),_time=newDate(value).setHours(0,0,0,0),_now=newDate().setHours(0,0,0,0),duration=24*60*60*1000;if(_now-_time==0){returnformatDate(time,'hh:mm');}elseif(_now-_time==duration){return"yesterday"+this.formatDate(time,'hh:mm');}elseif(Math.abs(_now-_time)>=duration&&time.getYear()==now.getYear()){returnformatDate(time,'MM-ddhh:mm');}else{returnformatDate(time,'yyyy-MM-ddhh:mm');}},页面中间的title向上滑动后,顶部天花板效果:&.scrolltop{//position:absolute;//顶部:0;//左:0;位置:-webkit-置顶;/*Safari*/position:sticky;顶部:计算(var(--status-bar-height));左:0;z-指数:3;宽度:100%;z-指数:999;背景:#F7F1E8;}文本竖排关键属性:word-wrap:break-word;21.uniapp自带的复制粘贴方法,复制内容时跳页的解决方法:exportfunctioncopyText(text){//h5copyfunctionvartextareaC=document.createElement('textarea');textareaC.setAttribute('readonly','readonly');//设置只读属性,防止手机弹出软键盘textareaC.value=text;//textarea的值document.body.appendChild(textareaC);//添加textarea作为body子元素textareaC.select();varres=document.execCommand('复制');document.body.removeChild(textareaC);//移除DOM元素uni.showToast({icon:'success',title:'复制成功!'});returnres}in字符串转日期时,由于系统差异,iOS系统无法识别字符串中间的'-',需要替换才能得到正确的值让receiptTime=this.orderDetails.receiptTime||'';receiptTime=receiptTime.replace(/-/g,"/");//解决iOS系统不识别中间日期的问题//确认收货后30天内,也可以申请售后letdate1=newDate(receiptTime).getTime()+30*24*60*60*1000;让date2=newDate().getTime();如果((日期2-日期1)<0){返回真;}返回假;当组件被挤压时,两个组件排在同一行。可以给挤出的组件设置一个固定的宽度,设置flex:1%;让另一个组件占据剩余空间。使用u-list组件时,记得设置高度,否则列表内容会出现在列表内容区域之外,导致上拉加载事件失败,或者页面上下滑动时跳转。数据分页:数据分页的核心点在于能否准确判断数据是否加载完毕。有几种判断方法:A.服务器返回总页数。当加载数据的页数大于等于总页数时,表示数据已经加载完毕。B.服务器返回数据项总数。当获取到的数据项数大于等于数据项总数时,说明数据已经加载完毕。C、前端每次请求时,服务器返回固定页大小的数据。当某一时刻返回的数据项数小于页面大小时,说明数据已经加载完毕。以上三种方法,判断总页数和总数据项数的方法靠谱,判断返回数据项数小于页面大小的方法不够准确(因为当服务器异常,返回的数据项数小于页面大小,则判断数据已加载)。经典错误。场景:页面顶部有多个选项卡。当你点击切换标签时,同一个页面被共享,但数据被刷新(带分页)。标签快速点击切换时,两个标签的数据显示在同一个页面。Bug(多线程并发)。bug原因:切换tab时,由于接口请求是异步的,response中仍然处理了item-A的数据,发送了item-B的请求,item-B只是读取了this项目-A。page+=1page,所以page>1的数据拼接逻辑是在item-B的response中执行的,导致两个item的数据拼接在item-B的page中。解决方法:1.)将添加一页的操作放在上拉加载更多的方法中。2.)为每个选项卡项使用单独的页面和列表变量。这样就不会出现开箱即用的并发问题。