【问题标题】:Backbone - how to maintain state in my case骨干 - 在我的情况下如何保持状态
【发布时间】:2014-01-28 11:13:34
【问题描述】:

我在这里阅读了很多主题,但找不到真正的答案。

我正在构建一个桌面应用程序,它首先加载大量 json 记录(我们称它们为“卡片”)。然后用户可以通过使用许多复选框来过滤它们,这样他就可以“求和/减去”选项(阅读:查询变量)。

我也在尝试使用路线。

所以,我可以有例如(我真的不知道我这样做是否正确):

  • app.com/#/cards/?near_address=伦敦
  • app.com/#/cards/?near_address=London&cat=concerts
  • app.com/#/cards/?near_address=London&cat=concerts&day=8
  • app.com/#/cards/?near_address=London&radius=10000 [...]

基本上,每次用户更改过滤器时,我都应该添加/删除查询变量。

我可以通过多种方式做到这一点,例如使用一些简单的“状态”json 对象,但我不确定这是否是一个好习惯,主要是因为我不确定我是否可以改为这样做仅通过使用路线(我对路线概念很陌生)。

用骨干做这种事情有什么“好的做法”吗?

谢谢

【问题讨论】:

    标签: backbone.js routes state query-variables


    【解决方案1】:

    使用路由来存储状态其实是一个非常好的主意。这就是路由的用途,用于存储状态,但这取决于您希望使用它们的粒度。一些开发人员选择按页面进行路由,而另一些开发人员选择像您的示例一样变得更细化,这也很好。您只需要注意不要太过分,使您的网址过长和晦涩。

    使用路由来存储状态会给您带来一些非常重要的好处:

    • 您的页面将可刷新。没有什么比刷新页面并丢失所有进度并返回到应用程序的起始页面更烦人的了。

    • 您的 URI 是可共享的。我可以创建一个过滤器查看结果并将 uri 发送给任何人,他们会看到与我相同的页面。

    • 它们让您作为开发人员的生活更轻松。这可以追溯到您的页面可刷新,它们允许您更改样式或脚本文件并刷新页面并查看更新后的页面无需在您的应用中导航以一遍又一遍地返回相同的视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      相关资源
      最近更新 更多