前端路由


前端路由主要分为两种模式:hash 和 history。
这两种模式都不会触发页面的刷新

Hash模式

hash模式就是用#号将路由的路径拼接在 url 后面,当#号后面的路径发生改变时,会触发 onhashchange 事件。




  
  
  Hash 模式

  
    
  
  


History模式

  1. 监听路由

History模式提供了popstate事件。当 history 对象出现变化时,就会触发 popstate 事件。

  1. 改变路由
    1) history.pushState(state,title,path)
  • state: popstate 事件触发时,该对象会传入回调函数
  • title:新页面的标题
  • path:新的网址,必须与当前页面处在同一个域。浏览

2)history.replaceState(state,title,path)

用 history.pushState() 或者 history.replaceState() 不会触发 popstate 事件




  
  
  History 模式