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

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

  一、前言
  当我们多次使用同一个组件的时候,我们可以将其进行封装然后进行使用,这个时候,自定义组件就起到了很好的作用,前面虽然我们讲到了自定义组件,不过那都是皮毛,仅仅只是讲到了自定义组件的创建和使用罢了,下面我们来深入剖析自定义组件。首先看下目录:自定义组件的参数自定义组件的生命周期插槽
  匿名插槽
  具名插槽
  外部样式
  多样化的组件通信
  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内。
  注:以上内容来源于微信开放文档
  更多精彩好文敬请关注公众号"简易编程网"

小米MIX4与小米11Pro差异对比,相差500该选谁小米MIX4售价4999元,小米11Pro发售价也是4999元,不过现在降到4499了,两者差价500元,主要区别在屏幕相机电充后盖这几点,那么该选谁呢?屏幕小米11Pro2K高质巨型iPad!iMac将推出五个配色,多彩外壳致敬前作据外媒neowin报道,苹果正处于其Mac产品线的全面转型之中,该转型于去年11月开始,当时苹果推出了首批使用其定制ARM芯片的笔记本电脑。而最新的报告表明,苹果可能要在外观上大刀坚果智慧墙O1投影优缺点合集,网友真实反馈如何?值不值得买?坚果O1智慧墙有四大优势,1无惧遮挡,不刺眼2离墙27厘米投出80英寸大屏3音频与画面方向相同,观影沉浸感更佳4减少梯形校正,画面更清晰。这款产品还采用了坚果自研的LUNAOS智能并不智慧的坚果智慧墙O1,朋友聚会体验评分5月初入手,坚果的智慧墙概念有一定的创意,营销放大了它的卖点,一定程度上也掩盖了这台投影的短板和硬伤亮度低噪音大效果差,这些只有实际体验了下来才能感知到的点。第一次看到坚果O1是在等等党福音!这四款参数拉满的手机就要来了相信现在有很多用户已经在上班的路上了,也有很多用户已经处于上班中的状态,同时也有很多用户没有回家过年,一直上班到现在。不得不说,2020年已经彻底过去,现阶段已经是全新的2021年4K旗舰投影极米RSPro2怎么样?详细分析值得入手吗?日前,国内智能投影仪领军品牌极米科技,以光影艺术家为主题,再次推出了两款RS系列投影新品,包括4K家用智能投影极米RSPro2以及便携智能投影极米RSAIR保时捷设计,引发了用户和极米NEWZ6X与坚果O1对比评测,四千元的投影真的比三千元更好?作为时下火热的两款代表机型,坚果O1作为四千元价位段的超短焦投影代表,而极米NEWZ6X作为三千元主流价位段的长焦投影销量机型,得到了许多消费者的认可。坚果O1的双系统陪伴模式创意极米RSPro2引领视听盛宴,RS系列有什么区别?近日,极米科技携手代言人王子文再推RS系列4K新品家用智能投影极米RSPro2和极米RSAIR,这是继极米H3S后的又一重磅之作。那么,极米RSPro2和极米RSAIR有哪些区别?真香!iPadPro2021曝光,miniLED屏三月发布按照苹果往年的节奏看,3月将会是春节发布会的重要时间节点。由于种种原因的限制,苹果取消了线下发布会,都改成了线上举行。细细盘点去年苹果发布的新产品,有iPadiPhone12系列采凭什么比小米11贵400?魅族18是堆料十足还是溢价严重?魅族的近几年可以说走得磕磕绊绊,从押注联发科失败到Pro17系列的销量不如预期,逐步淡出了主流市场。魅族虽然风光过,但现在它的实际情况真的是不怎么好,连续多年的亏损,让其日子举步维发售21天破百万!小米11真有这么美好吗?差评问题你遇到了吗近日小米发布海报,从发售开始21天,销量就突破百万大关,并且配文感谢你们让美好发生100万次,从小米历年来的销量数据来看已经是非常不错的成绩了。这已经创造了小米旗舰最快破百万的纪录
为什么现在总听到华为和格力,曾经红极一时的海尔干啥去了?海尔到国际市场高调去了,已经连续十三年全球大家电第一了!海尔智家的产品有一半是以海尔自己的品牌买到了国外,不是代工也不是贴牌!海尔集团营收已经过3000亿了!张瑞敏已经平稳的把海尔无纸化学习越来越热门,但是万一iPad坏了怎么办?坏了不怕,只要文件还在,其他的都不是问题所以你需要一个带云盘的APP软件。说说我的解决方案1用GoodNotes我记笔记一般用GoodNotes,50元永久使用价格。打开PDF版的总投资560亿,中芯国际再次出手,联手国家队攻坚缺芯问题文JING审核子扬校对知秋中国制造业的命脉,人才缺口达到300万,又一就业风口迎来黄金十年作为制造业大国,中国更是被称为世界工厂。但中国并非制造业强国,与欧美国家相比,中国制造业无京东副总裁身患绝症,为活命斥资千万造新药,是自救也是为救人文财图说编辑财图说他是身家过亿的京东副总裁,是互联网财税联盟会长,是中国电子发票第一人,更是各大顶尖高校争相邀请的做客教授。按照所有成功学意义上的标准来衡量他,他都是在当下社会能够2021macbookpro使用一周16g内存,1t硬盘的配置,平时经常开12个androidstudio,13个idea,偶尔docker,mysql等等,本来想定制32g,512ssd的,一个要等,另外一个,觉得网速越来越慢找到原因了路由器已经成为每个家庭必不可少的设备之一,一台小小的无线的路由器就能让全家人上网,一般情况下,很多网友家里的路由器设备每天都是24小时开着的,那么现在问题来了,在路由器不用的情况下深思挖矿就是挖坑来源读特国家发改委在昨天举行的例行新闻发布会上宣布,将持续做好虚拟货币挖矿全链条治理工作,下一步将以产业式集中式挖矿国有单位涉及挖矿和比特币挖矿为重点开展全面整治。所谓挖矿,简单说省钱买A7M4?晒晒趴趴双十一买了啥今年最想要购入的产品可能就是已经发布,但是很难买到的A7M4了,有朋友到实体店询问说要等半年以上对于A7M4趴趴不止吐槽了一次了,鬼子的刀法一如既往地恶心曾经的屠龙者也终成了恶龙,酒店的投影仪除了看片,还能这么用外出旅游住酒店,顾客最在意的是什么?除了干净卫生,那就是酒店的舒适度和创意点,好的创意点决定了酒店能吸引多少顾客,而舒适度决定了酒店能积攒多少回头客。近年来,国内的民宿和单体酒店数推进支付体系畅通微信支付与10余家银行机构实现互联互通本报记者王宁支付服务市场互联互通已成为行业趋势,越来越多的生态开放及支付合作正在开展。近日,腾讯微信支付与多家银行机构合作,在全面推进互联互通上取得显著进展,合作机构包括云闪付工商阿里人永远不变的是变化很荣幸刚成为一名阿里人,入职以来一直在支付宝工作。在这三年里,感受最深的是永远不变的是变化。先说公司,支付宝的公司愿景是人人都用支付宝。从公司架构产品品种销售方式到合规理念等等一直