31 lines
755 B
Plaintext
31 lines
755 B
Plaintext
@implements IAsyncDisposable
|
|
|
|
@inject IJSRuntime jsRuntime
|
|
|
|
@code
|
|
{
|
|
private Lazy<Task<IJSObjectReference>> jsModuleTask;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
jsModuleTask = new(() => jsRuntime.InvokeAsync<IJSObjectReference>("import", "./js/debounce.js").AsTask());
|
|
}
|
|
|
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
|
{
|
|
if (firstRender)
|
|
{
|
|
var jsModule = await jsModuleTask.Value;
|
|
await jsModule.InvokeVoidAsync("helloWorld");
|
|
}
|
|
}
|
|
|
|
public async ValueTask DisposeAsync()
|
|
{
|
|
if (jsModuleTask.IsValueCreated)
|
|
{
|
|
var jsModule = await jsModuleTask.Value;
|
|
await jsModule.DisposeAsync();
|
|
}
|
|
}
|
|
} |