路由器应该驱动SPA应用程序状态吗?

时间:2017-04-06 01:23:03

标签: vue.js url-routing single-page-application vue-router vuex

这是一个关于使我的SPA应用程序的状态与URL保持同步的架构问题。我正在使用vue,vue-router和vuex。这是我的应用程序中一个反复出现的问题,我将在很高的层次上进行描述。

假设用户点击了将他从/customers转到/customers/JohnSmith的链接。然后我的应用程序改变了商店。状态现已更新,因为用户单击了一个按钮,而不是因为路径已更改。

换句话说。

  1. 用户点击链接
  2. 状态已更新,因为单击。 (因为我点击了与对象关联的组件,我可以直接访问客户对象)
  3. 路线已更改
  4. 但是,如果我在/customers/JohnSmith上刷新页面,则步骤1不再适用,并且我的商店处于无效状态。此外,如果我使用浏览器后退按钮从/customers/BobbyHill转到/customers/JohnSmith,我的应用仍会显示有关BobbyHill的数据,即使该网址是JohnSmith。

    这是否意味着,我的应用程序状态应始终来自URL?

    1. 用户点击链接
    2. 路线已更改
    3. 状态已更新,因为路线已更改(基于网址,在我的商店中查找具有相同名称的客户对象)
    4. 以上步骤将处理用户单击按钮转到/customers/JohnSmith,刷新或在历史记录中前进/后退的所有3种情况。因此,无论用户如何到达页面,页面都应显示正确的数据。

      这是处理此问题的正确方法吗?

0 个答案:

没有答案