这是一个关于使我的SPA应用程序的状态与URL保持同步的架构问题。我正在使用vue,vue-router和vuex。这是我的应用程序中一个反复出现的问题,我将在很高的层次上进行描述。
假设用户点击了将他从/customers
转到/customers/JohnSmith
的链接。然后我的应用程序改变了商店。状态现已更新,因为用户单击了一个按钮,而不是因为路径已更改。
换句话说。
但是,如果我在/customers/JohnSmith
上刷新页面,则步骤1不再适用,并且我的商店处于无效状态。此外,如果我使用浏览器后退按钮从/customers/BobbyHill
转到/customers/JohnSmith
,我的应用仍会显示有关BobbyHill的数据,即使该网址是JohnSmith。
这是否意味着,我的应用程序状态应始终来自URL?
以上步骤将处理用户单击按钮转到/customers/JohnSmith
,刷新或在历史记录中前进/后退的所有3种情况。因此,无论用户如何到达页面,页面都应显示正确的数据。
这是处理此问题的正确方法吗?