Skip to content

上下文对象中的指令

上下文对象中名称以 $ 开头的是指令。

而名称以 $$ 开头的指令往往在内部被使用。作为应用开发者,你可能无需使用它们。

_.$app

当前的应用实例。

_.$state

当前的应用状态。

它可以是 UPDATERECV。但它不能是 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 的简写。

生命周期:一次 UPDATERECV 调用。

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.