在Blazor服务器端中,我们可以使用.NET事件来实现事件的订阅和触发。下面是一个简单的示例:
首先,在组件的代码文件中声明一个事件:
public event Action MessageReceived;
然后,在组件的适当位置触发事件:
private void SendMessage()
{
// 触发事件
MessageReceived?.Invoke("Hello, Blazor!");
}
接下来,在需要订阅事件的地方,可以通过以下方式来订阅事件:
EventCallback
组件参数:
@code {
private void HandleMessageReceived(string message)
{
// 处理接收到的消息
Console.WriteLine(message);
}
}
+=
操作符:
@code {
protected override void OnInitialized()
{
// 订阅事件
MyComponent.MessageReceived += HandleMessageReceived;
}
private void HandleMessageReceived(string message)
{
// 处理接收到的消息
Console.WriteLine(message);
}
public override void Dispose()
{
// 取消订阅事件
MyComponent.MessageReceived -= HandleMessageReceived;
base.Dispose();
}
}
注意:在取消订阅事件时,需要确保在不再需要订阅时进行取消订阅,以防止内存泄漏。
这样,当SendMessage
方法被调用时,订阅了MessageReceived
事件的组件将会收到消息并执行相应的处理逻辑。