示例 Blazor 项目中的计数器状态可以在页面切换之间保留吗?

2023-11-30

在服务器端 Blazor 和 WebAssembly Blazor 项目的默认示例项目中,每次在页面之间移动时,计数器示例都会重置为 0。但是,在 ASP.NET React 示例项目中,计数器不会在页面切换之间重置。

有没有办法让像 Counter 这样的组件在 Blazor 中的页面导航之间保留状态(至少对于不进行任何服务器调用的 WebAssembly 项目)?

enter image description here


看起来这个确切的场景在https://learn.microsoft.com/en-us/aspnet/core/blazor/state-management?view=aspnetcore-3.0#client-side-in-the-browser

似乎 Blazor 不能直接处理它,但您只需要使用localStorage or sessionStorage.

使用Blazor.Extensions.StorageNuGet 包(https://github.com/BlazorExtensions/Storage):

@page "/counter"

@inject ISessionStorage SessionStorage
@using Blazor.Extensions.Storage.Interfaces

<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    protected override async Task OnInitializedAsync()
    {
        currentCount = await SessionStorage.GetItem<int>("counter");
    }

    private async void IncrementCount()
    {
        currentCount++;
        await SessionStorage.SetItem<int>("counter", currentCount);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

示例 Blazor 项目中的计数器状态可以在页面切换之间保留吗? 的相关文章

随机推荐

  • 如何仅在确认对话框后翻转开关的选中状态?

    我的问题是 当我点击
  • 为什么 JavaScript 中局部变量名称优先于函数名称?

    在 JavaScript 中 您可以通过多种不同的方式定义函数 function BatmanController var BatmanController function If you want to be EVIL eval func
  • C++ 和 Objective C 之间通信的 IPC 机制

    我正在开发一个Mac应用程序 我需要在其中实现IPC机制 场景是这样的 我的应用程序包含两个可执行文件 一个是本机Mac应用程序 NSStatusItem应用程序 另一个是在CPP上编码的终端应用程序 我想在这两个进程之间建立IPC通信 我
  • 将 FontAwesome 图标添加到 D3 图表

    我正在尝试设置一个图标字体真棒而不是我的 D3 节点中的文本 这是最初的实现 带有文本 g append svg text attr x 0 attr y 4 attr class id text function d return d l
  • 监控与锁定

    何时适合使用Monitor类或lockC 中线程安全的关键字 EDIT 从目前的答案看来lock是一系列调用的简写Monitor班级 锁调用简写到底是什么意思 或者更明确地说 class LockVsMonitor private read
  • 使用http查询字符串作为数据库对象node.js/express

    尝试使用node js express mongodb 我在用着 http localhost 3000 models save model 名称 等等等等 将测试 JSON 对象传递到快速路由 models save 以保存到 mongo
  • Nodejs 在同一时间运行代码一次

    我想在特定时间运行我的流程 但只运行一次 我应该使用 cron 作业 执行然后停止作业还是使用 setTimeout 哪个更好 Update 我在node cron模块中找到了它 我认为这比使用 setTimeout 更好 另一个关于日期的
  • Sonata 管理导出字段和集合字段

    我正在尝试制作用于导出的自定义列 但我无法访问子项 有可能这样做吗 我此时的代码如下所示 public function getExportFields return ID gt id Transaction number gt trans
  • 如何在 MKMapView 中的 MKAnnotation 上设置图像

    我正在开发一个聊天应用程序 我必须在地图上显示所有朋友及其图像 请提供实施指导 我使用了以下代码 MKAnnotationView mapView MKMapView mapView viewForAnnotation id
  • Microsoft Ribbon 未在 Designer 中呈现

    我正在使用 Microsoft Ribbon for WPF System Windows Controls Ribbon 和 VS2015 由于我从项目中删除了不必要的依赖项 例如动态数据显示等 与功能区无关的东西 它不再在设计器中正确呈
  • 如何在 Android 的服务中运行 CountDownTimer?

    我想要一个运行 CountDownTimer 的服务 并且在每个刻度中我想在 Activity 中显示倒计时 并在一段时间间隔后播放声音 所有过程在单个活动中都进展顺利 但在来电期间倒计时不起作用 这就是我想使用服务来执行此操作的原因 有谁
  • 元素上的 CSS 过渡留下线条

    我在绝对定位的元素上放置了悬停过渡 悬停状态将框阴影应用于标题元素 以模仿它填充该区域 以避免无法从属性集转换为自动的事实 仅在 Chrome 中 当反转过渡时 背景图像上会留下一堆油漆线 如下图所示 左侧第二个图块应用了悬停状态 NOTE
  • 查找最大值并显示 MS Access 中不同字段的相应值

    所以我在 查找最大值并显示 SQL Server 中不同字段的相应值 但我想更进一步 我想获取每个 ID 和相应类型的最新日期 而不仅仅是所有条目的绝对最大值 有什么建议么 ID Type Date 1 Initial 1 5 15 1 P
  • 对于没有托管库存的 WooCommerce 变体显示“有库存”通知

    我需要针对特定 情况的帮助 在 WooCommerce 中 如果为简单产品或变体启用了 管理库存 则会在产品页面 gt 中显示通知 例如 此示例 1 但是 如果不启用 管理库存 那么就没有通知 我觉得很遗憾 因为即使我不管理库存数量 我仍然
  • Rstudio 闪亮可折叠侧面板

    我想最大化可用屏幕宽度mainPanel一个 Rstudio 闪亮的网页 在我的网页中 sidePanel用于选择参数以可视化结果mainPanel 我想知道如何才能最大限度地利用可用空间mainPanel 例如 我想要一个 折叠 展开 选
  • 为什么在 WebKit 上使用 :before height 时对齐标记列表不同?

    Code http jsbin com maropaxivo 1 edit html css 输出 请参阅 Firefox 和 Chrome 浏览器的示例代码 为什么对齐标记列表不同 li before height 20px conten
  • Toolstrip WinForms .Net Core 的问题

    我正在 Net Core 中制作一个 Winforms 应用程序来学习一些基本的东西 这是一个简单的应用程序 我将一些文本从文本框写入文件 基本上像记事本 现在我想添加一个带有工具条按钮的工具条来创建新文件和一个工具条按钮来将文本保存到文件
  • 在 Java 中使用 switch 的问题

    我不明白为什么它总是返回 arg1 的值 我正在建造一个重量转换器 public double convert double arg1 int arg2 int arg3 arg1 amount arg2 from arg3 to doub
  • signalR 中的第一个任意消息没有 messageID?

    我写了这个简单的代码 当连接时 应该产生 第一的 欢迎 3 条消息 计时器 这是代码 int i 0 protected override Task OnConnected IRequest request string connectio
  • 示例 Blazor 项目中的计数器状态可以在页面切换之间保留吗?

    在服务器端 Blazor 和 WebAssembly Blazor 项目的默认示例项目中 每次在页面之间移动时 计数器示例都会重置为 0 但是 在 ASP NET React 示例项目中 计数器不会在页面切换之间重置 有没有办法让像 Cou