在 Rails 实现返回按钮

在 Rails 实现返回按钮

💡 原文中文,约1700字,阅读约需5分钟。
📝

内容提要

在Rails中实现Material Design风格的返回按钮时,需要解决多个入口和外链的问题。虽然可以使用固定链接、浏览器API或referrer,但各有不足。最终通过前端逻辑判断历史记录,结合Turbo属性实现有效返回,代码简洁且兼容性好。

🎯

关键要点

  • 在Rails中实现Material Design风格的返回按钮时,需解决多个入口和外链的问题。
  • 固定链接方案简单,但无法满足所有需求,特别是多个入口的情况。
  • 浏览器API方案依赖历史记录,外链进入时可能返回到外部网站。
  • 使用referrer作为返回链接会导致页面返回循环的问题。
  • 最终通过前端逻辑判断历史记录,结合Turbo属性实现有效返回。
  • 使用Stimulus控制器简化代码,确保在有上一页时调用history.back(),没有上一页时访问默认URL。
  • 该方案兼容性好,代码量少,且在没有JavaScript时会自动降级。

延伸问答

在Rails中实现返回按钮时需要解决哪些问题?

需要解决多个入口和外链的问题,确保返回到正确的页面。

固定链接方案的优缺点是什么?

固定链接方案简单,但无法满足多个入口的需求,可能导致用户体验不佳。

浏览器API方案的主要问题是什么?

该方案依赖历史记录,外链进入时可能返回到外部网站,无法满足所有需求。

如何通过referrer实现返回按钮?

可以使用referrer作为返回链接,但可能导致页面返回循环的问题。

最终采用了什么方案来实现返回按钮?

通过前端逻辑判断历史记录,结合Turbo属性实现有效返回。

使用Stimulus控制器有什么好处?

Stimulus控制器简化了代码,确保在有上一页时调用history.back(),没有时访问默认URL。

➡️

继续阅读