Exploring JS interop
To invoke a JavaScript function from .NET, we use the IJSRuntime abstraction. This abstraction represents an instance of a JavaScript runtime that the framework can call into. To use IJSRuntime, we must first inject it into our component using dependency injection. For more information on dependency injection, refer to Chapter 6, Building a Shopping Cart Using Application State.
The @inject directive is used to inject a dependency into a component. The following code injects IJSRuntime into the current component:
@inject IJSRuntime js
The IJSRuntime abstraction has two methods that we can use to invoke JavaScript functions:
InvokeVoidAsyncInvokeAsync
Both of these methods are asynchronous. The difference between these two methods is that one of them returns a value and the other does not. We can downcast an instance of IJSRuntime to an instance of IJSInProcessRuntime to run the method synchronously. Finally, we can invoke a .NET method...