xr-frame / Exports / Component
# Class: Component<IData>
组件,系统核心之一。
组件就是wxml
的标签上写的那些attribute
,比如<xr-element transform="position: 1 1 1" />
中,transform
就是一个组件,position
是它的一个属性。
这些属性可以在schema
中被定义,变化时会触发对应的生命周期。
自定义组件最后使用registerComponent,组件的属性可以使用代理规则来简化,比如以上的标签可以简化为<xr-element position="1 1 1" />
,详见Element。
# Type parameters
Name | Description |
---|---|
IData | 组件数据的类型,应当和schema 中一致,用于TS类型推断。 |
# Hierarchy
# Table of contents
# Constructors
# Events
# Properties
# Accessors
# Methods
# Constructors
# constructor
• new Component<IData
>()
# Type parameters
Name |
---|
IData |
# Events
# onAdd
▸ onAdd(parent
, data
): void
所挂载的element
被挂载到场景时触发的回调。
# Parameters
Name | Type |
---|---|
parent | Element |
data | IData |
# Returns
void
# onRelease
▸ onRelease(data
): void
从被挂载的element
上被移除,或是element
被销毁时,触发的回调。
一般用于释放持有的资源。
# Parameters
Name | Type |
---|---|
data | IData |
# Returns
void
# onRemove
▸ onRemove(parent
, data
): void
所挂载的element
从父节点parent
被移除时,或者自己从element
上被移除时,触发的回调。
一般用于消除功能的运作。
如果一个组件的元素直接被销毁了,那这个组件就不会经历onRemove而是直接进入onRelease。
# Parameters
Name | Type |
---|---|
parent | Element |
data | IData |
# Returns
void
# onTick
▸ onTick(deltaTime
, data
): void
渲染每帧触发的回调。
# Parameters
Name | Type | Description |
---|---|---|
deltaTime | number | 单位为毫秒(ms)。 |
data | IData | - |
# Returns
void
# onUpdate
▸ onUpdate(data
, preData
): void
数据更新时触发的回调。
# Parameters
Name | Type |
---|---|
data | IData |
preData | IData |
# Returns
void
# Properties
# priority
• Readonly
priority: number
自定义组件的更新优先级。
# schema
• Readonly
schema: IComponentSchema
= {}
自定义组件的schema
。
# EVENTS
▪ Static
EVENTS: string
[] = []
# Accessors
# el
• get
el(): Element
挂载的元素。
# Returns
# scene
• get
scene(): Scene
当前场景。
# Returns
# version
• get
version(): number
当前版本,每次有数据更新都会增加,可以用作和其他组件合作的依据。
# Returns
number
# Methods
# getData
▸ getData<T
>(key
): IData
[T
]
获取一个当前值。
# Type parameters
Name | Type |
---|---|
T | extends string | number | symbol |
# Parameters
Name | Type |
---|---|
key | T |
# Returns
IData
[T
]
# setData
▸ setData(data
): void
不通过xml
而是直接设置data
,注意值的类型需要和schema
中一致。
# Parameters
Name | Type |
---|---|
data | Partial <IData > |
# Returns
void
# setDataOne
▸ setDataOne<T
>(key
, value
): void
设置一个数据。
# Type parameters
Name | Type |
---|---|
T | extends string | number | symbol |
# Parameters
Name | Type |
---|---|
key | T |
value | IData [T ] |
# Returns
void