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 7, 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:
- InvokeAsync
- InvokeVoidAsync
Both 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 from JavaScript by decorating the...