前端面试之vue路由hash与history之间爱恨区别
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。