Ruby Rails hotwire 或者 erb 模板渲染,如何实现多 tab 页的需求?

RaySong · July 11, 2025 · Last by nw8433 replied at July 15, 2025 · 426 hits

简单来说就是这种多 tab 页切换的需求。

通过 hotwire 控制器确实可以实现类似前端框架的效果,但是有一些需要记住状态的场景,比如在第一页有一些编辑操作,切换到别的页面再切回来的话,hotwire 能保存状态吗?

这几个 tab 内容是独立的吗?是的话可以写个 stimulus 控制器管理 tab 打开和关闭,然后 tab 内容用 turbo frame 加载,默认下 turbo frame 里面的操作只会影响 frame。

关于多 tab 的状态管理,比较简单的方案是实时保存到数据库里边,这样处理起来简单点。如果希望在客户端管理状态,也可以使用类似 nanostores 这样的库配合 stimulusjs 来实现。因为 turbo drive 的特性,页面间跳转状态不会丢失,但是手动刷新页面会。希望页面刷新也能保存状态的话,nanostores 也支持保存到 localstorage。

参考二位的建议实现了效果,感谢 @Rei @Ian

You need to Sign in before reply, if you don't have an account, please Sign up first.