var element = await JSRuntime.InvokeAsync("getElementById", "myElementId");
await element.InvokeVoidAsync("addEventListener", "click", DotNetObjectReference.Create(this).ToString());
Dispose方法取消订阅事件,例如在组件卸载时:protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
var element = await JSRuntime.InvokeAsync("getElementById", "myElementId");
await element.InvokeVoidAsync("addEventListener", "click", DotNetObjectReference.Create(this).ToString());
}
}
public void Dispose()
{
var element = await JSRuntime.InvokeAsync("getElementById", "myElementId");
await element.InvokeVoidAsync("removeEventListener", "click", DotNetObjectReference.Create(this).ToString());
}
在这个示例中,当组件加载时,注册了一个click事件,当组件卸载(即可见性true)时,取消注册该事件。在取消事件时,使用removeEventListener方法,并传递事件名称和前面注册的字符串(通过DotNetObjectReference创建)作为参数。