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