几天前,我尝试在没有框架
的情况下使用纯javascript制作路由系统,但我只能使用哈希来做到这一点
我知道你可以使用history.pushState
但是当我重新加载页面时,浏览器会认为它是一个不同的 URL,并向该新 URL
发送 GET 请求 我还尝试使用服务工作者拦截请求,但这似乎也不起作用
那么,像 Vue/React/Angular 这样的 JavaScript 框架如何在没有哈希的情况下处理路由并设法重定向请求呢?
但是当我重新加载页面时,浏览器会认为它是一个不同的 URL,并向该新 URL 发送 GET 请求
是的。这就是重点。
pushState
是一种说"我正在使用JavaScript更改页面"的方式。我将其更改为的状态与您转到此 URL 时获得的状态相同。
这允许书签、搜索引擎和后退/前进工作。
那么,像 Vue/React/Angular 这样的 JavaScript 框架如何在没有哈希的情况下处理路由并设法重定向请求呢?
他们不能,至少不能靠他们自己。您需要服务器上的某些内容才能生成处于正确状态的页面。例如,与您正在使用的前端框架兼容的服务器端渲染框架。