SwrSharp SWRSHARP v1.0
Getting Started

Getting Started

Installation

Installation

Prerequisites

  • .NET 8.0 or later
  • Blazor Server or Blazor WebAssembly project

NuGet Packages

Install the core library and Blazor integration:

dotnet add package SwrSharp.Core
dotnet add package SwrSharp.Blazor

Or using Package Manager:

Install-Package SwrSharp.Core
Install-Package SwrSharp.Blazor

Setup

1. Register Services

Add SwrSharp services to your Program.cs:

using SwrSharp.Blazor;

var builder = WebAssemblyHostBuilder.CreateDefault(args);

// Add SwrSharp services (registers QueryClient, BrowserFocusManager, BrowserOnlineManager)
builder.Services.AddSwrSharp();

await builder.Build().RunAsync();

2. Add QueryClientProvider

Wrap your app with QueryClientProvider in your Routes.razor or layout:

<QueryClientProvider>
    <Router AppAssembly="typeof(Program).Assembly">
        <Found Context="routeData">
            <RouteView RouteData="routeData" DefaultLayout="typeof(Layout.MainLayout)"/>
            <FocusOnNavigate RouteData="routeData" Selector="h1"/>
        </Found>
    </Router>
</QueryClientProvider>

3. Configure Options (Optional)

You can customize SwrSharp behavior globally:

builder.Services.AddSwrSharp(options =>
{
    options.DefaultNetworkMode = NetworkMode.Online;
    options.DefaultRefetchOnWindowFocus = true;
});

4. Add Imports

Add these to your _Imports.razor:

@using SwrSharp.Core
@using SwrSharp.Blazor

Verify Installation

Create a simple component that uses UseQuery:

@page "/test"
@inherits SwrSharpComponentBase

@if (greeting.IsLoading)
{
    <p>Loading...</p>
}
else
{
    <p>@greeting.Data</p>
}

@code {
    private UseQuery<string> greeting = null!;

    protected override void OnParametersSet()
    {
        greeting = UseQuery(new QueryOptions<string>(
            queryKey: new QueryKey("greeting"),
            queryFn: async _ => "Hello from SwrSharp!"
        ));
    }
}

Next Steps