路由理解

vue-router的使用及实现原理

前端路由是直接找到与地址匹配的一个组件或对象并将其渲染出来. 对地址变更的监听通过监听 hashChange 事件来实现

window.addEventListener('hashchange', () => {
  // this.transitionTo(...)
})

改变浏览器地址而不向服务器发出请求有两种方式:

  1. 在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航
  2. 使用H5的window.history功能,使用URL的Hash来模拟一个完整的URL。

区别:

通过history api,丢掉#,但是它也有个问题: 可以前进,后退,但刷新,f5会出问题,(如果后端没有准备的话),因为刷新是实实在在地去请求服务器的。 在hash模式下,前端路由修改的是#中的信息,而浏览器请求时是不带它玩的,所以没有问题.但是在history下,你可以自由的修改path,当刷新时,如果服务器中没有相应的响应或者资源,会出现404。

results matching ""

    No results matching ""