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