前端面试之vue路由hash与history之间爱恨区别

478 阅读1分钟

1.直观区别

  • hash模式中带了一个丑丑的#号
  • history模式中则简介明了不带
  • vue中默认采取hash模式

2.hash模式

  • 什么是hash模式 hash也称作锚点,是用来做页面定位的。而hash模式的url屁股后面的*#*实际上和id选择器里的是一个东西,可以使对应的id元素显示在可视区域内。对应hash值得变换就是url后边的#号以及其他的字符发生变换。
  • 特点 hash值发生变化时不会触发hashchange事件。意味着:不会向服务器发起请求,后端无影响。因此hash值改变不会重新加载页面。

3.history模式

  • 什么是history模式 history——html5 History Interface中新增的pushState() 和replaceState()方法实现的。所以history模式中可以放参数还可以放指定对象。
  • 特点 history中的方法可以用于浏览器的历史记录栈的改变:go、back、forward。

4.区别之处

  • hash模式:路由修改#中的信息,而浏览器请求时不会传#中数据。
  • history模式:修改path路径,若与后端url不一致,则会报错404