路由策略
我们上一节课中提到了{provide:LocationStrategy,useClass:HashLocationStrategy}
上一节课中我们说明了html中传统的锚标示路由。
这里我们再看新的路由的另一种实现方式了。
是HTML5的新规则,在不需要刷新页面的轻快下,允许在代码中创建新的浏览器记录并显示适当的URL。
简单的说,就是你可以用代码修改地址栏的URL而不刷新页面。
这是使用js中的history.pushState方法实现的。
语法如下:
history.pushState(state, title, url);
(需要注意的是微信虽然支持了HTML5,但是微信中这个方法不能用,不允许修改URL地址。)
Angular中,路由的默认形式是新的这种HTML5。
上面我们已经提到了这种方式有些浏览器不支持。
而且,当我们使用服务端渲染的方式部署时。
要使用HTML5这种方式,还需要服务端配合。
所以我们这里增加了定位策略(LocationStrategy)。
LocationStrategy负责从浏览器的URL表示和读取路由状态。
angular提供了两种策略:HashLocationStrategy和PathLocationStrategy。
应用程序应使用Router或Location与应用路由状态进行交互。
例如,HashLocationStrategy会生成类似http://example.com#/foo
的URL,
而PathLocation