范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

微信小程序从入门到学会第七天小程序的自定义组件

  一、前言
  当我们多次使用同一个组件的时候,我们可以将其进行封装然后进行使用,这个时候,自定义组件就起到了很好的作用,前面虽然我们讲到了自定义组件,不过那都是皮毛,仅仅只是讲到了自定义组件的创建和使用罢了,下面我们来深入剖析自定义组件。首先看下目录:自定义组件的参数自定义组件的生命周期插槽
  匿名插槽
  具名插槽
  外部样式
  多样化的组件通信
  1.双向绑定
  2.父子组件互相传
  组件共享
  组件关系二、自定义组件的参数
  定义段
  类型
  是否必填
  描述
  最低版本
  properties
  Object Map
  否
  组件的对外属性,是属性名到属性设置的映射表
  data
  Object
  否
  组件的内部数据,和 properties一同用于组件的模板渲染
  observers
  Object
  否
  组件数据字段监听器,用于监听 properties 和 data 的变化
  2.6.1
  methods
  Object
  否
  组件的方法,包括事件响应函数和任意的自定义方法,关于事件响应函数的使用
  behaviors
  String Array
  否
  类似于mixins和traits的组件间代码复用机制
  created
  Function
  否
  组件生命周期函数-在组件实例刚刚被创建时执行,注意此时不能调用setData )
  attached
  Function
  否
  组件生命周期函数-在组件实例进入页面节点树时执行)
  ready
  Function
  否
  组件生命周期函数-在组件布局完成后执行)
  moved
  Function
  否
  组件生命周期函数-在组件实例被移动到节点树另一个位置时执行)
  detached
  Function
  否
  组件生命周期函数-在组件实例被从页面节点树移除时执行)
  relations
  Object
  否
  组件间关系
  externalClasses
  String Array
  否
  组件接受的外部样式类
  options
  Object Map
  否
  选项
  lifetimes
  Object
  否
  组件生命周期声明对象
  2.2.3
  pageLifetimes
  Object
  否
  组件所在页面的生命周期声明对象
  2.2.3
  definitionFilter
  Function
  否
  定义段过滤器,用于自定义组件扩展
  2.2.3
  生成的组件实例可以在组件的方法、生命周期函数和属性 observer 中通过 this访问。组件还有一些通用属性和方法,如下:
  属性名
  类型
  描述
  is
  String
  组件的文件路径
  id
  String
  节点id
  dataset
  String
  节点dataset
  data
  Object
  组件数据,  包括内部数据和属性值
  properties
  Object
  组件数据,包括内部数据和属性值(与 data一致)
  router
  Object
  相对于当前自定义组件的Router对象
  pageRouter
  Object
  相对于当前自定义组件所在页面的Router对象
  方法名
  参数
  描述
  最低版本
  setData
  Object newData
  设置data并执行视图层渲染
  hasBehavior
  Object behavior
  检查组件是否具有 behavior(检查时会递归检查被直接或间接引入的所有behavior)
  triggerEvent
  String name, Object detail, Object options
  触发事件
  createSelectorQuery
  创建一个 SelectorQuery对象,选择器选取范围为这个组件实例内
  createIntersectionObserver
  创建一个IntersectionObserver对象,选择器选取范围为这个组件实例内
  createMediaQueryObserver
  创建一个 MediaQueryObserver 对象
  2.11.1
  selectComponent
  String selector
  使用选择器选择组件实例节点,返回匹配到的第一个组件实例对象(会被 wx://component-export 影响)
  selectAllComponents
  String   selector
  使用选择器选择组件实例节点,返回匹配到的全部组件实例对象组成的数组(会被 wx://component-export 影响)
  selectOwnerComponent
  选取当前组件节点所在的组件实例(即组件的引用者),返回它的组件实例对象(会被 wx://component-export 影响)
  2.8.2
  getRelationNodes
  String   relationKey
  获取这个关系所对应的所有关联节点
  groupSetData
  Function  callback
  立刻执行 callback ,其中的多个 setData之间不会触发界面绘制(只有某些特殊场景中需要,如用于在不同组件同时 setData时进行界面绘制同步)
  2.4.0
  getTabBar
  返回当前页面的 custom-tab-bar 的组件实例
  2.6.2
  getPageId
  返回页面标识符(一个字符串),可以用来判断几个自定义组件实例是不是在同一个页面内
  2.7.1
  animate
  String selector, Array keyframes, Number duration, Function callback
  执行关键帧动画
  2.9.0
  clearAnimation
  String selector Object options, Function callback
  清除关键帧动画
  2.9.0
  setUpdatePerformanceListener
  Object options Function listener
  清除关键帧动画
  2.12.0
  注:以上内容来源于微信开放文档  二、自定义组件的参数
  定义段
  类型
  是否必填
  描述
  最低版本
  properties
  Object Map
  否
  组件的对外属性,是属性名到属性设置的映射表
  data
  Object
  否
  组件的内部数据,和 properties一同用于组件的模板渲染
  observers
  Object
  否
  组件数据字段监听器,用于监听 properties 和 data 的变化
  2.6.1
  methods
  Object
  否
  组件的方法,包括事件响应函数和任意的自定义方法,关于事件响应函数的使用
  behaviors
  String Array
  否
  类似于mixins和traits的组件间代码复用机制
  created
  Function
  否
  组件生命周期函数-在组件实例刚刚被创建时执行,注意此时不能调用setData )
  attached
  Function
  否
  组件生命周期函数-在组件实例进入页面节点树时执行)
  ready
  Function
  否
  组件生命周期函数-在组件布局完成后执行)
  moved
  Function
  否
  组件生命周期函数-在组件实例被移动到节点树另一个位置时执行)
  detached
  Function
  否
  组件生命周期函数-在组件实例被从页面节点树移除时执行)
  relations
  Object
  否
  组件间关系
  externalClasses
  String Array
  否
  组件接受的外部样式类
  options
  Object Map
  否
  选项
  lifetimes
  Object
  否
  组件生命周期声明对象
  2.2.3
  pageLifetimes
  Object
  否
  组件所在页面的生命周期声明对象
  2.2.3
  definitionFilter
  Function
  否
  定义段过滤器,用于自定义组件扩展
  2.2.3
  生成的组件实例可以在组件的方法、生命周期函数和属性 observer 中通过 this访问。组件还有一些通用属性和方法,如下:
  属性名
  类型
  描述
  is
  String
  组件的文件路径
  id
  String
  节点id
  dataset
  String
  节点dataset
  data
  Object
  组件数据,  包括内部数据和属性值
  properties
  Object
  组件数据,包括内部数据和属性值(与 data一致)
  router
  Object
  相对于当前自定义组件的Router对象
  pageRouter
  Object
  相对于当前自定义组件所在页面的Router对象
  方法名
  参数
  描述
  最低版本
  setData
  Object newData
  设置data并执行视图层渲染
  hasBehavior
  Object behavior
  检查组件是否具有 behavior(检查时会递归检查被直接或间接引入的所有behavior)
  triggerEvent
  String name, Object detail, Object options
  触发事件
  createSelectorQuery
  创建一个 SelectorQuery对象,选择器选取范围为这个组件实例内
  createIntersectionObserver
  创建一个IntersectionObserver对象,选择器选取范围为这个组件实例内
  createMediaQueryObserver
  创建一个 MediaQueryObserver 对象
  2.11.1
  selectComponent
  String selector
  使用选择器选择组件实例节点,返回匹配到的第一个组件实例对象(会被 wx://component-export 影响)
  selectAllComponents
  String   selector
  使用选择器选择组件实例节点,返回匹配到的全部组件实例对象组成的数组(会被 wx://component-export 影响)
  selectOwnerComponent
  选取当前组件节点所在的组件实例(即组件的引用者),返回它的组件实例对象(会被 wx://component-export 影响)
  2.8.2
  getRelationNodes
  String   relationKey
  获取这个关系所对应的所有关联节点
  groupSetData
  Function  callback
  立刻执行 callback ,其中的多个 setData之间不会触发界面绘制(只有某些特殊场景中需要,如用于在不同组件同时 setData时进行界面绘制同步)
  2.4.0
  getTabBar
  返回当前页面的 custom-tab-bar 的组件实例
  2.6.2
  getPageId
  返回页面标识符(一个字符串),可以用来判断几个自定义组件实例是不是在同一个页面内
  2.7.1
  animate
  String selector, Array keyframes, Number duration, Function callback
  执行关键帧动画
  2.9.0
  clearAnimation
  String selector Object options, Function callback
  清除关键帧动画
  2.9.0
  setUpdatePerformanceListener
  Object options Function listener
  清除关键帧动画
  2.12.0
  注:以上内容来源于微信开放文档  二、自定义组件的参数
  定义段
  类型
  是否必填
  描述
  最低版本
  properties
  Object Map
  否
  组件的对外属性,是属性名到属性设置的映射表
  data
  Object
  否
  组件的内部数据,和 properties一同用于组件的模板渲染
  observers
  Object
  否
  组件数据字段监听器,用于监听 properties 和 data 的变化
  2.6.1
  methods
  Object
  否
  组件的方法,包括事件响应函数和任意的自定义方法,关于事件响应函数的使用
  behaviors
  String Array
  否
  类似于mixins和traits的组件间代码复用机制
  created
  Function
  否
  组件生命周期函数-在组件实例刚刚被创建时执行,注意此时不能调用setData )
  attached
  Function
  否
  组件生命周期函数-在组件实例进入页面节点树时执行)
  ready
  Function
  否
  组件生命周期函数-在组件布局完成后执行)
  moved
  Function
  否
  组件生命周期函数-在组件实例被移动到节点树另一个位置时执行)
  detached
  Function
  否
  组件生命周期函数-在组件实例被从页面节点树移除时执行)
  relations
  Object
  否
  组件间关系
  externalClasses
  String Array
  否
  组件接受的外部样式类
  options
  Object Map
  否
  选项
  lifetimes
  Object
  否
  组件生命周期声明对象
  2.2.3
  pageLifetimes
  Object
  否
  组件所在页面的生命周期声明对象
  2.2.3
  definitionFilter
  Function
  否
  定义段过滤器,用于自定义组件扩展
  2.2.3
  生成的组件实例可以在组件的方法、生命周期函数和属性 observer 中通过 this访问。组件还有一些通用属性和方法,如下:
  属性名
  类型
  描述
  is
  String
  组件的文件路径
  id
  String
  节点id
  dataset
  String
  节点dataset
  data
  Object
  组件数据,  包括内部数据和属性值
  properties
  Object
  组件数据,包括内部数据和属性值(与 data一致)
  router
  Object
  相对于当前自定义组件的Router对象
  pageRouter
  Object
  相对于当前自定义组件所在页面的Router对象
  方法名
  参数
  描述
  最低版本
  setData
  Object newData
  设置data并执行视图层渲染
  hasBehavior
  Object behavior
  检查组件是否具有 behavior(检查时会递归检查被直接或间接引入的所有behavior)
  triggerEvent
  String name, Object detail, Object options
  触发事件
  createSelectorQuery
  创建一个 SelectorQuery对象,选择器选取范围为这个组件实例内
  createIntersectionObserver
  创建一个IntersectionObserver对象,选择器选取范围为这个组件实例内
  createMediaQueryObserver
  创建一个 MediaQueryObserver 对象
  2.11.1
  selectComponent
  String selector
  使用选择器选择组件实例节点,返回匹配到的第一个组件实例对象(会被 wx://component-export 影响)
  selectAllComponents
  String   selector
  使用选择器选择组件实例节点,返回匹配到的全部组件实例对象组成的数组(会被 wx://component-export 影响)
  selectOwnerComponent
  选取当前组件节点所在的组件实例(即组件的引用者),返回它的组件实例对象(会被 wx://component-export 影响)
  2.8.2
  getRelationNodes
  String   relationKey
  获取这个关系所对应的所有关联节点
  groupSetData
  Function  callback
  立刻执行 callback ,其中的多个 setData之间不会触发界面绘制(只有某些特殊场景中需要,如用于在不同组件同时 setData时进行界面绘制同步)
  2.4.0
  getTabBar
  返回当前页面的 custom-tab-bar 的组件实例
  2.6.2
  getPageId
  返回页面标识符(一个字符串),可以用来判断几个自定义组件实例是不是在同一个页面内
  2.7.1
  animate
  String selector, Array keyframes, Number duration, Function callback
  执行关键帧动画
  2.9.0
  clearAnimation
  String selector Object options, Function callback
  清除关键帧动画
  2.9.0
  setUpdatePerformanceListener
  Object options Function listener
  清除关键帧动画
  2.12.0
  注:以上内容来源于微信开放文档  二、自定义组件的参数
  定义段
  类型
  是否必填
  描述
  最低版本
  properties
  Object Map
  否
  组件的对外属性,是属性名到属性设置的映射表
  data
  Object
  否
  组件的内部数据,和 properties一同用于组件的模板渲染
  observers
  Object
  否
  组件数据字段监听器,用于监听 properties 和 data 的变化
  2.6.1
  methods
  Object
  否
  组件的方法,包括事件响应函数和任意的自定义方法,关于事件响应函数的使用
  behaviors
  String Array
  否
  类似于mixins和traits的组件间代码复用机制
  created
  Function
  否
  组件生命周期函数-在组件实例刚刚被创建时执行,注意此时不能调用setData )
  attached
  Function
  否
  组件生命周期函数-在组件实例进入页面节点树时执行)
  ready
  Function
  否
  组件生命周期函数-在组件布局完成后执行)
  moved
  Function
  否
  组件生命周期函数-在组件实例被移动到节点树另一个位置时执行)
  detached
  Function
  否
  组件生命周期函数-在组件实例被从页面节点树移除时执行)
  relations
  Object
  否
  组件间关系
  externalClasses
  String Array
  否
  组件接受的外部样式类
  options
  Object Map
  否
  选项
  lifetimes
  Object
  否
  组件生命周期声明对象
  2.2.3
  pageLifetimes
  Object
  否
  组件所在页面的生命周期声明对象
  2.2.3
  definitionFilter
  Function
  否
  定义段过滤器,用于自定义组件扩展
  2.2.3
  生成的组件实例可以在组件的方法、生命周期函数和属性 observer 中通过 this访问。组件还有一些通用属性和方法,如下:
  属性名
  类型
  描述
  is
  String
  组件的文件路径
  id
  String
  节点id
  dataset
  String
  节点dataset
  data
  Object
  组件数据,  包括内部数据和属性值
  properties
  Object
  组件数据,包括内部数据和属性值(与 data一致)
  router
  Object
  相对于当前自定义组件的Router对象
  pageRouter
  Object
  相对于当前自定义组件所在页面的Router对象
  方法名
  参数
  描述
  最低版本
  setData
  Object newData
  设置data并执行视图层渲染
  hasBehavior
  Object behavior
  检查组件是否具有 behavior(检查时会递归检查被直接或间接引入的所有behavior)
  triggerEvent
  String name, Object detail, Object options
  触发事件
  createSelectorQuery
  创建一个 SelectorQuery对象,选择器选取范围为这个组件实例内
  createIntersectionObserver
  创建一个IntersectionObserver对象,选择器选取范围为这个组件实例内
  createMediaQueryObserver
  创建一个 MediaQueryObserver 对象
  2.11.1
  selectComponent
  String selector
  使用选择器选择组件实例节点,返回匹配到的第一个组件实例对象(会被 wx://component-export 影响)
  selectAllComponents
  String   selector
  使用选择器选择组件实例节点,返回匹配到的全部组件实例对象组成的数组(会被 wx://component-export 影响)
  selectOwnerComponent
  选取当前组件节点所在的组件实例(即组件的引用者),返回它的组件实例对象(会被 wx://component-export 影响)
  2.8.2
  getRelationNodes
  String   relationKey
  获取这个关系所对应的所有关联节点
  groupSetData
  Function  callback
  立刻执行 callback ,其中的多个 setData之间不会触发界面绘制(只有某些特殊场景中需要,如用于在不同组件同时 setData时进行界面绘制同步)
  2.4.0
  getTabBar
  返回当前页面的 custom-tab-bar 的组件实例
  2.6.2
  getPageId
  返回页面标识符(一个字符串),可以用来判断几个自定义组件实例是不是在同一个页面内
  2.7.1
  animate
  String selector, Array keyframes, Number duration, Function callback
  执行关键帧动画
  2.9.0
  clearAnimation
  String selector Object options, Function callback
  清除关键帧动画
  2.9.0
  setUpdatePerformanceListener
  Object options Function listener
  清除关键帧动画
  2.12.0
  注:以上内容来源于微信开放文档
  三、自定义组件的生命周期
  组件也有许多生命周期函数,如下:
  生命周期
  参数
  描述
  最低版本
  created
  无
  在组件实例刚刚被创建时执行
  1.6.3
  attached
  无
  在组件实例进入页面节点树时执行
  1.6.3
  ready
  无
  在组件在视图层布局完成后执行
  1.6.3
  moved
  无
  在组件实例被移动到节点树另一个位置时执行
  1.6.3
  detached
  无
  在组件实例被从页面节点树移除时执行
  1.6.3
  error
  Object Error
  每当组件方法抛出错误时执行
  2.4.1
  这些生命周期函数可以在自定义组件的参数外,也可以在组件的lifetimes参数内,这样优先级更高;还有一类是组件所在页面生命周期函数,如下:
  生命周期
  参数
  描述
  最低版本
  show
  无
  组件所在的页面被展示时执行
  2.2.3
  hide
  无
  组件所在的页面被隐藏时执行
  2.2.3
  resize
  Object Size
  组件所在的页面尺寸变化时执行
  2.4.0
  这类生命周期函数必须在参数pageLifetimes内。
  注:以上内容来源于微信开放文档
  更多精彩好文敬请关注公众号"简易编程网"

手上设备多?协议五花八门?试试这款充电器吧从iPhone8时代开始,苹果就开始支持PD快充,而安卓阵营,谷歌更是不遗余力的推动PD协议的推广普及,今天给大家带来的这一款omthing30WUSBPD充电器配有1A1C两个输百元多模无线鼠标,我选了它几乎每一台PC都离不开键盘鼠标这些日常外设,每个人也都会有自己的切身体会,购买轻薄本后,为了轻薄先后购买了联想N700雷柏M200Plus等超薄鼠标,但是无奈自己手比较大,轻薄鼠标趁着米粉节,入手雷克沙NM6101TSSD前言近段时间,闪存市场再次翻脸,价格又开始蹭蹭蹭的往上窜了,本来一些1TM。2NVMe固态硬盘前段时间普遍都降到了700附近,可是现在又回归了900元的高位。本来都计划放弃了,突然你那还戴口罩吗?看看我这个开篇想先问大家一个问题,四月份了,你那还必须戴口罩么?下面给大家带来的是一款看守者的更换滤芯式口罩,这个还能叫做口罩么?但是它又够不上呼吸器的级别,姑且算作口罩吧。买这个已经二十多镜面数显电流表,都是充电器,你为什么这么优秀前言倍思,一个深耕手机配件市场多年的品牌,对用户需求的把握几乎达到了极致,随着各类快充技术的快速发展,确实为我们带来了诸多便利,但是对于普通消费者而言,判断快充并不是一件非常直观的用上PSSD,才知道移动存储也可以这么快早就想入手一个PSSD了,曾经经历过数据被删的惨痛经历的我,深深地明白数据备份的重要性,也时刻保持至良好的数据备份习惯,但是NAS备份不可移动,普通的机械移动硬盘备份起来又比较慢,直流变频,一键沐浴,浴霸,请选这个小弟所在的地界,就是曾经的网红城市,那个千里为重广大为庆的重庆。小弟是北方人,大学在这里读完就没有回去,一到冬天就开始想家,没有暖气的重庆,一个月也看不到两三次太阳那种冷真的是魔法生活要规律,开心治百病2020丁香日历突如其来的这场疫情,让我更加重视起丁香医生的专业报道和评论,总感觉他给出的结论会更客观一些(也许是心理作用),近期当当网有一个50人团的活动,丁香医生健康日历2020只需要9。9还充电器充电宝合二为一,小体积快速充出行神器现在的手机屏幕越做越大,电池容量也越来越高,但是可用时间却越来越少,人们出行已经习惯了在家里和公司各放一个充电器,出差的时候还要多带一个充电宝,何其麻烦。其实,早在2017年,An放弃砖头,轻装上阵致港TypeC转联想方口电源线很多使用联想ThinkPad商务本的内心都有一个痛,那就是充电口基本上都是采用了联想独有的方口充电口,无法通用的特性绝对可以教会你出门(差)背上充电器,尤其是最近几年,PD快充协议颜值即正义的移动电源有这么一款移动电源,它没有特别强悍的快充能力,不会动不动就支持45W30W,甚至是18W的PD快充协议都不支持,但是它有着非常不错的颜值,你会支持吗?下面就让我们来看一看爱国者在几
OPPOReno标准版正面照公布非异形屏今天上午,OPPO官方微博宣布,OPPOReno标准版正式开启预定,并大方公布了该机的正面照。从公布的正面照来看,该机正面并非异形屏设计,而是与FindX类似的全面屏,OPPO称之高雄市长韩国瑜爆料马云要访问高雄来源环球网环球网综合报道高雄市长韩国瑜1日公开爆料称,大陆的阿里巴巴集团创办人马云已正式来函,表达到高雄拜访的意愿,届时将与高雄的青年朋友面对面座谈。综合台湾中时电子报等媒体4月1下一个研发风口来了?跨国巨头耗资百亿角逐基因疗法多年来,大型制药公司一直都在为开发具有医学重大突破意义的治疗方法而努力,继免疫疗法后,基因疗法可能是他们寻找的应许之地。替代基因疗法公司成收购热门在过去的9个月内,3个大型跨国制药可穿戴的手机!努比亚国行版正式官宣4月8日,北京见数码新资讯?互联新事件?手机快测评?二十年专业老司机,等你上车,点击右上角关注泡泡网即可4月1日,努比亚手机官方微博宣布柔屏腕机,触手可及!可以穿戴的手机努比亚新品发布会,4月8日华为P30为什么选择在欧洲发布?其实真是费尽心思了!华为近几年的MATE和P系列高端手机都选择了在欧洲首发,让不少国内消费者觉得华为有点忽视国内用户,其实不然,首先这与华为近几年的品牌和市场战略有很大关系,随着华为手机各方面的提升,电信黑牛卡升级上线,300分钟通话100G流量,前4个月免月租!还记得之前给大家推荐过一款超实惠的套餐电信黑牛卡吗?有些朋友反馈说找不到这个卡,后来才发现被下架了。等了将近半个月,电信黑牛卡又重新上线了,而且这次还升级了,可以免费使用四个月。这小米米粉节最值入手爆品!实用又实惠,仅需58即享受健康生活!一年一度的小米米粉节又叕叕地来了,相信很多米粉们都在摩拳擦掌,正在物色这次活动中有哪些值得入手的好物。云米科技作为小米生态链企业,也是推出各种优惠活动,回馈给各位米粉。下面,小编就这平板处理器真香三月份,百机齐放的月份,新款手机齐聚一堂,不过大都是安卓手机,苹果却迟迟没有消息,但是三月十八号苹果官网却悄然更新了,不是呼声最高的小屏手机iponeSE2,而是新款平板ipadm爱立信表示,华为禁令并未带来更多合约,反而让顾客更担心华为5G网络设备产品在部分国家因安全理由被禁止,理论上得益的应该是竞争对手。不过最近对手之一的爱立信(Ericsson)却表示,华为禁令并未带来更多合约,反而让顾客更担心。爱立信行这条公路被称为死亡公路,长下坡27公里,已有上千辆汽车失控本文章已经通过区块链技术进行版权认证,禁止任何形式的改编转载抄袭,违者追究法律责任长27公里的下坡位于云南的云磨高速上,全路段长27公里,海拔落差达到一千多米,最大的坡度达到6度,德国超市之王麦德龙败退中国!阿里腾讯又要接盘?无可奈何花落去,似曾相识燕归来。麦德龙中国业务挥泪大甩卖又一巨头要卖身!日前,据外媒消息,德国超市之王麦德龙,开始通过招标,出售在中国的业务,据说这笔交易估值1520亿美元。潜在买