Blazor.Core
1.0.3
See the version list below for details.
dotnet add package Blazor.Core --version 1.0.3
NuGet\Install-Package Blazor.Core -Version 1.0.3
<PackageReference Include="Blazor.Core" Version="1.0.3" />
paket add Blazor.Core --version 1.0.3
#r "nuget: Blazor.Core, 1.0.3"
// Install Blazor.Core as a Cake Addin #addin nuget:?package=Blazor.Core&version=1.0.3 // Install Blazor.Core as a Cake Tool #tool nuget:?package=Blazor.Core&version=1.0.3
Blazor Core
Blazor.Interop
This library provides a base class that consumers can use to
implement their own JS modules (BaseJsModule
).
More importantly this library provides a TS module that
serializes/deserializeC# callbacks (Func
, Action
, etc.) to JS.
This allows C# code to pass let's say a Func<>
to JS, and JS code
can invoke the C# callback. To use this functionality you must
have a reference to a DotNetCallbackJsModule
object and then
call its ImportAsync()
to import the dotnet-callback.js
module.
Then call RegisterAttachReviverAsync()
.
Your code in Program.cs
may look like this.
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
builder.Services
.AddSingleton<DotNetCallbackJsModule>()
.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
var webHost = builder.Build();
// Only need to import and register once
var dotnetCallbackModule = webHost.Services.GetRequiredService<DotNetCallbackJsModule>();
await dotnetCallbackModule.ImportAsync();
await dotnetCallbackModule.RegisterAttachReviverAsync();
await dotnetCallbackModule.DisposeAsync();
await webHost.RunAsync();
Alternatively you can just call the extension method RegisterAttachReviverAsync
to do
what's described above.
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
builder.Services
.AddSingleton<DotNetCallbackJsModule>()
.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
var webHost = builder.Build();
// Only need to import and register once
await webHost.Services.RegisterAttachReviverAsync();
await webHost.RunAsync();
Example
Your custom module may look like this.
In your math.ts
:
export function add(a: number, b: number): number {
return a + b;
}
Define your module like this, MathJsModule.cs
:
public sealed class MathJsModule : BaseJsModule
{
/// <inheritdoc/>
protected override string ModulePath { get; }
public MathJsModule(IJSRuntime jSRuntime) : base(jSRuntime)
{
var customPath = "js/math.js";
ModulePath = $"{ModulePrefixPath}/{customPath}";
}
public async Task<int> AddAsync(int a, int b)
=> await Module.InvokeAsync<int>("add", a, b);
}
Then in your application code (most likely in Blazor), add the module class to your DI container, and use the module like this:
@inject MathJsModule MathModule
<p>Sum is @_sum</p>
@code
{
private int _sum;
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
// You must first load the module otherwise
// using it will cause exception
await MathModule.ImportAsync();
_sum = await MathModule.AddAsync(3, 2);
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net7.0
- Microsoft.AspNetCore.Components.Web (>= 7.0.11)
- Microsoft.AspNetCore.Components.WebAssembly (>= 7.0.10)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Blazor.Core:
Package | Downloads |
---|---|
Blazor.Avatar
Blazor library that provide components to create avatar. |
|
Blazor.FamilyTreeJS
Wrapper Blazor library for FamilyTreeJS. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.1 | 149 | 10/7/2024 |
2.0.0 | 83 | 10/7/2024 |
1.1.4 | 156 | 9/7/2024 |
1.1.3 | 182 | 8/17/2024 |
1.1.2 | 132 | 8/17/2024 |
1.1.1 | 126 | 7/4/2024 |
1.1.0 | 131 | 6/29/2024 |
1.0.9 | 226 | 6/10/2024 |
1.0.8 | 114 | 6/9/2024 |
1.0.7 | 117 | 5/23/2024 |
1.0.6 | 204 | 4/17/2024 |
1.0.5 | 147 | 4/15/2024 |
1.0.4 | 131 | 4/14/2024 |
1.0.3 | 138 | 4/7/2024 |
1.0.2 | 102 | 4/7/2024 |
1.0.1 | 111 | 4/6/2024 |
1.0.0 | 117 | 4/5/2024 |