上下文对象中的指令
上下文对象中名称以 $
开头的是指令。
而名称以 $$
开头的指令往往在内部被使用。作为应用开发者,你可能无需使用它们。
_.$app
当前的应用实例。
_.$state
当前的应用状态。
它可以是 UPDATE
或 RECV
。但它不能是 IDLE
,因为这时并不存在可用的上下文对象。
_.$updateContext
如果应用处于 UPDATE
状态,那么它是当前上下文对象,否则它是 null
。
使用方法:
ts
$app([], _ => {
if (_.$updateContext) {
_.$root.addCls("dark");
}
});
_.$recvContext
与 _.$updateContext
类似。
如果应用处于 RECV
状态,那么它是当前上下文对象,否则它是 null
。
_.$updateModel
设置一个 Model
所包含的值,并触发页面更新。
_.$ev
这个指令仅在处理事件的代码中可用。
使用方法:
ts
$app([], _ => {
_.$ev; // ERROR: Property '$ev' does not exist on type 'Context'.
if (_.button("Click me")) {
_.$ev; // of type MouseEvent
}
});
_.$root
代表应用根元素的元素组件。
通过它为根元素设置类名、样式与事件侦听器。
_.$body
代表 window.document
的元素组件。
通过它为 document.body
设置类名、样式与事件侦听器。
_.$window
代表 window.document
的元素组件。
通过它为 window
添加事件侦听器。
_.$ref
参见 元素引用。
_.$props
为下一个组件添加额外的 prop。
参见 额外的 prop。
_.$cls
向下一个组件或元素添加类名。
参见 添加类名与样式.
_.$css
向下一个组件或元素添加样式。
参见 添加类名与样式.
_.$runtimeData
_.$state.runtimeData
的简写。
生命周期:一次 UPDATE
或 RECV
调用。
INFO
It is usually a bad idea to write to _.$runtimeData
directly, which is not scoped to children, use _.provide
to provide values to _.$runtimeData
instead.