【微信小程序】自定义组件(二)

简介: 【微信小程序】自定义组件

纯数据字段


1、什么是纯数据字段


概念:纯数据字段指的是那些不用于界面渲染的data字段。

应用场景:例如有些情况下,某些data中的字段既不会展示在界面上,也不会传递给其他组件,仅仅在当前组件内部使用。带有这种特性的data字段适合被设置为纯数据字段。


好处:纯数据字段有助于提升页面更新的性能


2、使用规则


在Component构造器的options节点中,指定pureDataPattern 为一个正则表达式,字段名符合这个正则

表达式的字段将成为纯数据字段,示例代码如下:


Component({
  options:{
  //指定所有-开头的数招段为纯数招字段
    pureDataPattern:/*_/
  },
  data:{
    a:true, //普通数据字晚
    b:true//纯数据字段
  }
})



组件的生命周期


1、组件全部的生命周期函数


生命周期函数 参数 描述说明
created 在组件实例刚刚被创建时执行
attached 在组件实例进入页面节点树时执行
ready 在组件在视图层布局完成后执行
moved 在组件实例被移动到节点树另一个位置时执行
detached 在组件实例被从页面节点树移除时执行
error Object Error 每当组件方法抛出错误时执行


2、组件主要的生命周期函数


在小程序组件中,最重要的生命周期函数有3个,分别是created. attached. detached.


  • 组件实例刚被创建好的时候,created 生命周期函数会被触发
  • 此时还不能调用setData
  • 通常在这个生命周期函数中, 只应该用于给组件的this 添加- -些自定义的属性字段


  • 在组件完全初始化完毕、进入页面节点树后, attached生命周期函数会被触发
  • 此时, this.data 已被初始化完毕
  • 这个生命周期很有用, 绝大多数初始化的工作可以在这个时机进行(例如发请求获取初始数据)


  • 在组件离开页面节点树后,detached生命周期函数会被触发
  • 退出一个页面时,会触发页面内每个自定义组件的detached生命周期函数
  • 此时适合做一 些清理性质的工作


3、lifetimes节点


在小程序组件中,生命周期函数可以直接定义在Component构造器的第-级参数中,可以在lifetimes字段内进行声明(这是推荐的方式,其优先级最高)


组件所在页面的生命周期


1、什么是组件所在页面的生命周期


有时,自定义组件的行为依赖于页面状态的变化,此时就需要用到组件所在页面的生命周期。


例如:每当触发页面的show生命周期函数的时候,我们希望能够重新生成一一个随机的RGB颜色值。在自定义组件中,组件所在页面的生命周期函数有如下3个,分别是:


生命周期函数 参数 描述说明
show 在组件件所在的页面被展示时执行
resize 组件所在的页面被隐藏时执行
hide Object Size 组件所在的页面尺寸变化时执行



2、 pageLifetimes节点


组件所在页面的生命周期函数,需要定义在pageLifetimes节点中,示例代码如下:


pageLifetimes:{
    show:function(){ //页面被展示
      console.log('show');
    },
    hide:function(){ //页面被隐藏
      console.log('hide');
    },
    resize:function(size) { //页面尺寸变化
      console.log('resize');
    }



3、生成随机的颜色值


_randomColor(){      
  this.setData({  
  //为data里面的_rgb纯数据字段重新赋值       
  _rgb:{         
      r:Math.floor(Math.random() *256),
      g:Math.floor(Math.random() *256),   
     b:Math.floor(Math.random() *256)        
    }      
 })   
}
目录
相关文章
|
1月前
|
小程序 数据可视化 JavaScript
微信小程序:轻松实现时间轴组件
本文介绍了如何在微信小程序中实现一个可视化时间轴组件。该组件适用于展示用户资金流动、投资结算等时间节点,帮助用户直观了解资金去向。时间轴支持自定义节点形状、显示序号、倒序排列等功能,并通过插槽灵活定义动态内容。文中详细介绍了组件的设计与使用方法,以及如何结合动态 slot 实现自定义操作。该组件为展示用户资金信息提供了美观、易用的解决方案。
59 1
微信小程序:轻松实现时间轴组件
|
1月前
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
402 1
|
1月前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
60 0
微信小程序:自定义关注公众号组件样式
|
1月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
55 1
|
1月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
477 7
|
1月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
529 1
|
1月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
111 7
ly~
|
2月前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
78 6
|
1月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
189 1
|
1月前
|
小程序 前端开发 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【10月更文挑战第3天】随着移动互联网的发展,微信小程序凭借便捷的用户体验和强大的社交传播能力,成为企业拓展业务的新渠道。本文探讨了小程序全栈开发中的身份认证与授权机制,包括手机号码验证、微信登录、第三方登录及角色权限控制等方法,并强调了安全性、用户体验和合规性的重要性,帮助开发者更好地理解和应用这一关键技术。
62 5