在Blazor中,可以使用Web Storage API(如localStorage或sessionStorage)在客戶端存儲數據。以下是如何在Blazor中使用localStorage進行客戶端存儲的簡單示例:
_Imports.razor
文件中,導入Microsoft.JSInterop
命名空間:@using Microsoft.JSInterop
LocalStorageService.cs
的新文件,并添加以下代碼:using Microsoft.JSInterop;
using System.Threading.Tasks;
public class LocalStorageService
{
private readonly IJSRuntime _jsRuntime;
public LocalStorageService(IJSRuntime jsRuntime)
{
_jsRuntime = jsRuntime;
}
public async Task SetItemAsync(string key, string value)
{
await _jsRuntime.InvokeVoidAsync("setItem", key, value);
}
public async Task<string> GetItemAsync(string key)
{
return await _jsRuntime.InvokeStringAsync("getItem", key);
}
}
LocalStorageService
并調用其方法來存儲和檢索數據:@inject LocalStorageService LocalStorageService
<button @onclick="SaveData">Save Data</button>
<button @onclick="GetData">Get Data</button>
<p>@data</p>
@code {
private string data;
private async Task SaveData()
{
data = "Hello, Blazor!";
await LocalStorageService.SetItemAsync("myKey", data);
}
private async Task GetData()
{
data = await LocalStorageService.GetItemAsync("myKey");
}
}
在這個示例中,我們創建了一個名為LocalStorageService
的類,它提供了SetItemAsync
和GetItemAsync
方法來存儲和檢索數據。然后,在Blazor組件中,我們注入了LocalStorageService
并調用了這些方法來存儲和檢索數據。
注意:這個示例使用了JavaScript的localStorage
對象。如果你想在Blazor中使用sessionStorage
,只需將LocalStorageService
類中的_jsRuntime.InvokeVoidAsync("setItem", key, value)
和_jsRuntime.InvokeStringAsync("getItem", key)
方法中的localStorage
替換為sessionStorage
即可。