我一直在搜索的所有内容都只是一个教程,如何使用pushState
,replaceState
,history.state
等等。这些概念很简单,但有一点是我'我想知道人们如何解决如何知道初始状态是什么。
假设您的SPA托管在https://example.com/en-us/myapp/。去那里,你的应用程序的主页已加载,点击左右,它会pushState
看你到https://example.com/en-us/myapp/get/users。好的,现在您看到了一个用户列表,并且由于历史记录api,它不是一个实际的页面加载。
但现在让我们假装用户已将https://example.com/en-us/myapp/get/users状态加入书签,并在此网址上启动应用程序。好的,所以你的服务器会监听它并提供应用程序。我的问题是,您如何知道get/users
是当前状态,您需要显示相关视图?您是否知道您的应用程序是在https://example.com/en-us/myapp/
托管的,所以您可以获得之后知道的内容?
这样的事情:
function getState (uri) {
return uri.match(/^https:\/{2}(?:w{3}\.)?example.com\/en-us\/myapp\/?(.*)/i)[1];
}
var state = getState(location.href);
如果state
为假,则加载初始视图,否则处理状态并在state === 'get/users'
时显示用户列表?