Javascript 如果url中没有哈希字符,angular2的spa路由是如何工作的?

Javascript 如果url中没有哈希字符,angular2的spa路由是如何工作的?,javascript,angular,angular-ui-router,single-page-application,router,Javascript,Angular,Angular Ui Router,Single Page Application,Router,在执行angular2“英雄之旅”教程时,我注意到他们的spa路由器在url中没有尾随散列(#)字符(例如kendo spa路由器) angular2如何在没有浏览器执行完整页面重新加载的情况下工作?它正在使用现代浏览器功能来完成这一任务 阅读官方文件 附录:定位策略和浏览器URL样式 当路由器导航到新的组件视图时,它会使用该视图的URL更新浏览器的位置和历史记录。这是一个严格的本地URL。浏览器不应将此URL发送到服务器,也不应重新加载页面 现代HTML 5浏览器支持history.push

在执行angular2“英雄之旅”教程时,我注意到他们的spa路由器在url中没有尾随散列(#)字符(例如kendo spa路由器)


angular2如何在没有浏览器执行完整页面重新加载的情况下工作?

它正在使用现代浏览器功能来完成这一任务

阅读官方文件

附录:定位策略和浏览器URL样式

当路由器导航到新的组件视图时,它会使用该视图的URL更新浏览器的位置和历史记录。这是一个严格的本地URL。浏览器不应将此URL发送到服务器,也不应重新加载页面

现代HTML 5浏览器支持history.pushState,这是一种在不触发服务器页面请求的情况下更改浏览器位置和历史的技术。路由器可以组成一个“自然”URL,它与需要加载页面的URL无法区分


这里是“HTML5pushState”风格的危机中心URL:

可能与@estus重复,我想不是重复,因为我想问的是它是如何专门用于angular2框架的。你在这里混搭话题。这个问题听起来好像你不熟悉历史API和pushState的概念。重复的问题详细解释了如何在纯JS中完成。你可以确定Angular 2在引擎盖下也有同样的功能。