前置:单页应用最显著特点之一就是采用的前端路由系统,通过改变URL,在不重新请求页面的情况下,更新页面视图。
更新视图但不重新请求页面,是前端路由原理的核心之一,目前在浏览器环境中这一功能的实现主要有2种方式:
1、利用URL中的hash("#");
2、利用History interface在HTML5中新增的方法;
一、hashHistory
通过(1)HashHistory.push()
(2)HashHistory.replace()
(3)监听地址栏
用户还可以直接在浏览器地址栏中输入改变路由,因此还需要监听浏览器地址栏中路由的变化 ,并具有与通过代码调用相同的响应行为,在HashHistory中这一功能通过setupListeners监hashchange
二、HTML5History
从HTML5开始,History interface提供了2个新的方法:
(1)pushState()
(2)replaceState()
使得我们可以对浏览器历史记录栈进行修改
--------------------------------------------------------------------------------------------------------------------------------------
详见:https://segmentfault.com/a/1190000014822765
https://www.jianshu.com/p/f8699194ce26