安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

小程序自定义组件

10月10日 六壬会投稿
  小程序中的js对象实例,按作用域大小划分,大致可以归为三类:App,Page,Component。
  Component也即本文要重点要讲的自定义组件,或称模板。一、App
  App()必须在app。js中调用且只能调用一次,用于注册成为一个小程序应用。
  1、app。jsApp({小程序初始化完成时触发,全局只触发一次。onLaunch(options){通过options。scene获取场景值可以得到小程序进入的渠道来源参数也可以使用wx。getLaunchOptionsSync获取。},小程序启动,或从后台进入前台显示时触发。onShow(options){小程序启动,或从后台进入前台显示时触发。},小程序从前台进入后台时触发。onHide(){也可以使用wx。onAppHide绑定监听。},onError(msg){console。log(msg)},小程序要打开的页面不存在时触发。也可以使用wx。onPageNotFound绑定监听。onPageNotFound(res){如果是tabbar页面,需使用wx。switchTab若需保留ahrefhttps:www。q578。coml140targetblankclassinfotextkey历史a页面路径,需用wx。navigateTo,而非wx。redirectTo(会销毁当前页面)若存在循环操作,则需要计算页面层级(wx。navigateTo最多跳转10层页面,超过会报页面栈溢出)letpageNumgetCurrentPages()。lengthif(pages10){超过页面路由层深,返回重载应用首页wx。reLaunch({url:pagesindexindex})}else{wx。navigateTo({url:pages。。。})}控制后退页面数wx。navigateBack();wx。navigateBack({delta:n});后退n页wx。navigateBack({回退所有循环操作页面,只保留前3页delta:pageNum3,iOS会先重定向后回退页面,需要控制先回退完成后再重定向到指定页面complete:function(){wx。redirectTo({url:pages。。。})}})},全局数据,可以保存用户登录信息等globalData:{}})
  2、app。json
  app。json全局配置(所有页面需要在此文件中注册配置pages。该文件不能写注释。){pages:〔pagesindexindex〕,window:{backgroundTextStyle:light,navigationBarBackgroundColor:fff,navigationBarTitleText:我的小程序,navigationBarTextStyle:black},permission:{scope。userLocation:{desc:你的位置信息将用于定位效果展示}},style:v2,sitemapLocation:sitemap。json,tabBar:{color:333333,selectedColor:333333,selectedFontweight:600,backgroundColor:fff,list:〔{pagePath:pagesindexindex,iconPath:imgiconindex0。png,selectedIconPath:imgiconindex1。png,text:首页},{pagePath:pagesminemine,iconPath:imgiconmine0。png,selectedIconPath:imgiconmine1。png,text:我的}〕}}二、Page
  1、pageschatlistchatlist。jsimportApifrom。。。。api。Page({页面的初始数据data:{userId:0,pageNum:1,chats:〔〕,noMoreChatData:false,noMoreUserData:false},扫码scanCode(){这一步重命名赋值变量,是为了在回调函数内部能够获取当前页面对象letthatthiswx。scanCode({onlyFromCamera:true,success(res){{charSet:utf8,result:32,codeVersion:1,errMsg:scanCode:ok,rawData:MzI,scanType:QRCODE}if(res。resultthat。data。userId){wx。showToast({title:扫码成功})}else{wx。showToast({title:二维码无效,icon:none})}},fail(res){wx。showToast({title:res,icon:none})}})},弹框下拉选菜单chooseMenu(){letthatthiswx。showActionSheet({itemList:〔离职随时到岗,在职月内到岗,在职考虑机会,在职暂不考虑〕,不能超过6个success(res){todosomething}})},订阅服务消息通知(后台服务器按模板ID推送通知,小程序订阅接收)subscribeNotice(){wx。requestSubscribeMessage({tmplIds:〔oztPlfmck2B6yWFeypLloT3CxUqLrbXnXFvfiWlo〕,success:(res){}})},页面锚点pageScrollTo(){wx。pageScrollTo({selector:footer,滚动至指定节点元素idduration:0滚动过渡时间})},生命周期函数监听页面加载onLoad:function(options){可以通过options获取上级页面路由路径传参letuserIdoptions。userIdthis。setData({userId:userId})},生命周期函数监听页面初次渲染完成onReady:function(){},生命周期函数监听页面显示onShow:function(){一般会在页面显示时,请求服务加载数据,动态渲染页面展示this。getChatsByPage()禁止页面分享菜单(shareAppMessage分享给朋友;shareTimeline分享到朋友圈)wx。hideShareMenu({menus:〔shareAppMessage,shareTimeline〕})},生命周期函数监听页面隐藏onHide:function(){},生命周期函数监听页面卸载onUnload:function(){wx。redirectTo会触发当前页面销毁一般也会在页面销毁时(包括onHide时),关闭当前页面的定时器},页面相关事件处理函数监听用户下拉动作onPullDownRefresh:function(){该事件默认关闭,需要在页面对应的json配置文件中开启enablePullDownRefresh:true比如聊天页面,后台服务按时间倒序返回聊天记录,前端第一页拉取最新的聊天记录,下拉刷新拉取ahrefhttps:www。q578。coml140targetblankclassinfotextkey历史a聊天记录下拉刷新,获取下一页ahrefhttps:www。q578。coml140targetblankclassinfotextkey历史a聊天数据列表this。getChatsByPage()},获取聊天数据列表getChatsByPage(){if(!this。data。noMoreChatData){this。setData({pageNum:this。data。pageNum1})前端拉取的每一页记录,逆序处理后,追加到当前数据列表的头部letchatsApi。getChatsByPage()分页查询,从后台服务器拉取聊天记录数据if(chats!nullchats。length0){chats。sort(function(a,b){returna〔id〕b〔id〕})逆序处理:数组属性获取方法,重写排序规则要returnthat。setData({chats:chats。concat(that。data。chats)头部插入数组})}else{that。setData({noMoreChatData:true})}}},分页查询数据列表(触底onReachBottom后若有更多数据再请求)noMoreUserData(e){参数值由子组件userlist触发trigger传递过来this。setData({noMoreUserData:e。detail})},页面上拉触底事件的处理函数onReachBottom:function(){分页查询处理if(!this。data。noMoreUserData){获取子组件userlistthis。userListthis。selectComponent(userList)调用子组件的方法this。userList。getDataList()}},用户点击右上角分享(移除该函数,则整个页面禁止分享)onShareAppMessage:function(){}})
  2、pageschatlistchatlist。json
  页面对应的json配置文件:引用组件;开启下拉刷新监听;设置标题栏{usingComponents:{userlist:componentsuserlistuserlist},enablePullDownRefresh:true,navigationBarTitleText:聊天列表}
  3、pageschatlistchatlist。wxmlviewclasschatlist!引用子组件模板,userlist标签需与chatlist。json中引入并设定的组件名保持一致;设定的id,用于chatlist。js中获取子组件对象:this。userListthis。selectComponent(userList)userId为父传子交互属性,对应子组件userlist。js的properties中定义的属性userIdbind:noMoreUserData用于子组件userlist。js中trigger触发父组件方法noMoreUserDatauserlistiduserListuserId{{userId}}bind:noMoreUserDatanoMoreUserDataview三、Component
  如果诸多Page间存在一些反复重复部分,可以选择新建Component,抽取出公共部分作为模板引用,也即自定义组件,从而达到复用的目的。
  组件json配置,声明为组件(当然,组件内部还可以再嵌套引用其他组件):
  1、componentsuserlistuserlist。json{component:true,usingComponents:{nomore:componentsnomorenomore}}
  2、componentsuserlistuserlist。jsimportApifrom。。。。api。js子组件userlistComponent({组件的属性列表(父传子交互属性)properties:{userId:Number},组件的初始数据(子组件私有数据,data中可以获取到properties中的传参值)data:{userId:0,dataList:〔〕,pageNum:1,noMoreData:false},组件的方法列表methods:{子组件中定义的方法,父组件中获取到子组件对象后,可以调用子组件方法getDataList(){获取数据列表letdataListApi。getDataList()if(dataList。length0){this。setData({dataList:this。data。dataList。concat(dataList),pageNum:pageNum1})}else{this。setData({noMoreData:true})子组件userlist,触发父组件对象绑定的监听方法this。triggerEvent(noMoreUserData,true)}}}})
投诉 评论

OPPOFindX3,颜值与实力并存的自拍手机说到OPPO,就会有人说是厂妹机,对于这个说法我只觉得emmm,只要厂妹机好用、性价比高,我愿意被叫厂妹。总比花大价格买一个5G都没有的手机是吧(我在讽刺哪些一听OPPO就说厂……小米路由器Mesh公测米粉晒奇葩户型花式炫富日前,小米路由器Mesh正式开启0元公测,并宣布新品即将上市。据官方介绍,小米路由器Mesh是一套可以搞定各种家庭环境的WiFi系统,解决全户型网络覆盖问题的路由设备。小……上市2个月从1499降至999,vivo6128GB千元机,因为iQOO系列,vivo手机在网友心中的印象已经大为改观。同时vivo手机所搭载的FoutouchOS也有极大的进步,这些都让vivo手机在互联网上的口碑大有转变。但vivo……iPhone12参加618大促,是不是因为销量不好?可以很肯定告诉你,iPhone12的销量并不差,之所以参加618大促,无非是想继续扩大优势罢了!iPhone12销量依然恐怖下图右侧是市场研究机构Counterpoint……MACOS下thrift下载与安装用brew安装brewinstallbisonbrewinstallthriftjava实例创建thrift接口声明文件创建一个服务TesterService,创建文件T……小程序自定义组件小程序中的js对象实例,按作用域大小划分,大致可以归为三类:App,Page,Component。Component也即本文要重点要讲的自定义组件,或称模板。一、App……消息称realmeGT2将于12月20日全球发布,第二款高通IT之家12月13日消息,经过多次爆料,realme近日终于正式宣布了旗下首款高端旗舰手机真我GT2Pro。realme创始人、CEO李炳忠宣布将推出realme首款高端……平板微波炉等于电磁炉?高颜值百元微波炉入手推荐为什么要买微波炉?其实水母家里原来是没有微波炉的,因为觉得微波炉主要的用途是热剩饭,在家吃饭的也不算多,剩下来的又比较少,所以一直没有买。但是西安这段时间疫情,现在已经居……轻量高效功能强大的微前端框架MicroApp前沿这几年后端的微服务是比较火爆,我们公司目前只要是新项目,基本上都是基于微服务去架构的,那么微前端是什么呢?微前端是借鉴了微服务的架构理念,核心在于将一个庞大的前……特斯拉问题原因找到啦!反人类的设计把准备刹车变成准备加油特斯拉问题不断,到底问题出在哪里?是车子失控?刹车失灵吗?这种概率是有的,但一个这样车企,这种概率应该是零,否则就该倒闭了!那原因在哪里呢?经分析隐形杀手就是能量回收系统……巨幕智屏时代何时真正到来?TCL98ampamp39ampa倘若将时间回溯到十年前,三四十英寸的电视已经算是彼时的高端电视产品了,根本想象不到电视屏幕能够发展到近百英寸,然而科技的发展与进步却把这个看似天方夜谭的幻想带进了现实,到了今天……免费无弹窗广告,良心软件360安全卫士极速版正式发布随着windwos11系统的推了,同时外加系统中广告频繁弹出,于是将系统刷入的Windows11镜像,新的系统桌面感觉真的很漂亮。新系统安装好后,各应用也开始了安装,而对……
找到了!掀起华为nova9Pro手机抢购潮的原因!前后双景录期待!微软SurfaceGo3曝光处理器升级支持4G电动汽车要有多少续航里程,才能缓解你的里程焦虑?九月不适合换手机,请让手机先飞一会儿Meta一季度日活用户重拾涨势盘后股价飙升超18丨一只热股明日主题前瞻汽车智能化规模增长最快的零部件主机厂聚焦自动驾驶一周人才小米汽车研发超1000人滴滴造车招兵买马JZ反转链表骁龙8Gen18。8寸2K屏仅2499?最完美安卓小尺寸游戏哪款适合你?深度解析比亚迪汉DMp和EV看完选车不纠结曲面屏与直面屏该选哪种?各有优缺点,行内人给出正确的选择答案小米12X火速跳水,骁龙87067W快充IMX766,小屏旗闹翻造句用闹翻造句大全秦国百姓恨商鞅吗商鞅推行变法秦人为何不悦高三学霸用小瓶子夺走姐夫生命失控的人生,有多可怕?小班教学工作计划儿童助听器价格贵吗?儿童使用助听器时需要注意哪些?艳遇难挡国羽梦幻联动!李雪芮抱着女儿与林丹陈雨菲合影,目标集齐奥运冠彩绘集装箱式音乐创客街区亮相西安创客聚集好看好玩有活力下月生肖猪准(生肖猪)蛙人黄色食物让女性更有激情古诗里的春节,究竟有怎样的风情?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利