跳转到内容

8. 事件

组件可以向层级结构上方派发事件。

Emit / On

csharp
public class Counter : SusComponent
{
    public Prop<int> Count = new(0);

    private void Increment()
    {
        Count.Value++;
        Emit("count-changed", Count.Value);
    }
}

// Consumer:
var counter = new Counter();
counter.On("count-changed", (Action<int>)(newVal =>
{
    Debug.Log($"Counter is now {newVal}");
}));
root.Add(counter);

通过 Prop<​T>

响应式属性是组件之间传递数据的主要方式:

csharp
public class Parent : SusComponent
{
    public Prop<int> SharedCount = new(0);

    protected override void Build()
    {
        var child = new ChildCounter { Count = SharedCount };
        Add(child);
    }
}