К содержимому

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);
    }
}