PM>Install-Package Cloudcrate.AspNetCore.Blazor.Browser.StorageCheck out Steve Sanderson's demo at NDC Minnesota, at minute 48
Add Services to Dependency Injection
services.AddStorage();Add Javascript file to your index.html or _Host.cshtml page in <body> after either <script src="_framework/blazor.webassembly.js"></script> or <script src="_framework/blazor.server.js"></script> depending on what architecture you are using.
<scriptsrc="_content/Cloudcrate.AspNetCore.Blazor.Browser.Storage/Storage.js"></script>Inject and use Storage
@usingCloudcrate.AspNetCore.Blazor.Browser.Storage;@inject LocalStorageStorage
<inputtype="text"@bind="value" />
<button@onclick="SetValue">Set</button>
<button@onclick="GetValue">Get</button>
@code{stringvalue;
voidSetValue()
{Storage.SetItem("storageKey", value);
}voidGetValue()
{value=Storage.GetItem("storageKey");
}}Inject and use Storage
@usingCloudcrate.AspNetCore.Blazor.Browser.Storage;@inject LocalStorageStorage
<inputtype="text"@bind="value" />
<button@onclick="SetValue">Set</button>
<button@onclick="GetValue">Get</button>
@code{stringvalue;
asyncTaskSetValue()
{awaitStorage.SetItemAsync("storageKey", value);
}asyncTaskGetValue()
{value=awaitStorage.GetItemAsync("storageKey");
}}Using storage native event: StorageEvent
protectedoverridevoidOnInit(){Storage.StorageChanged+=HandleStorageChanged;}voidHandleStorageChanged(objectsender,StorageEventArgse){Console.WriteLine($"Value for key {e.Key} changed from {e.OldValue} to {e.NewValue}");}publicvoidDispose(){Storage.StorageChanged-=HandleStorageChanged;}- StorageEvent implementation by @peterblazejewicz
- Server-side support by @konradbartecki