---摘自Angular中文文档
angular中,当路由器导航到一个新的组件视图时,它会用该视图的 URL 来更新浏览器的当前地址以及历史。 严格来说,这个 URL 其实是本地的,浏览器不会把该 URL 发给服务器,并且不会重新加载此页面。angluar提供了两种URL风格
一种是 HTML5的 pushState 风格:localhost:3002/crisis-center/
现代HTML5浏览器支持history.pushState API, 这是一项可以改变浏览的当前地址和历史,却又不会触发服务端页面请求的技术。路由器可以合成出一个“自然的”URL,它看起来和那些需要进行页面加载的URL没有什么区别
angular默认的是HTML5风格,它生成的URL更容易被用户理解,也为将来的服务端渲染预留了空间。
第二种是hash URL: localhost:3002/src/#/crisis-center/
老旧的浏览器在当前地址的URL发生变化时,总会向服务器发送请求,唯一例外的规则是:当变化位于“#”(被称为hash)后面不会发送。通过把应用内的路由URL拼接到#之后,路由器就可以货到这条“额外格则”带来的优点,html中的锚点定位也是基于此规则
除非你有强烈的理由不得不使用 hash 路由,否则就应该坚决使用默认的 HTML 5 路由风格。
网友评论