美文网首页前端开发那些事儿
Vue-router中的history模式和hash模式

Vue-router中的history模式和hash模式

作者: kingLeft7 | 来源:发表于2020-10-19 14:05 被阅读0次
const router = new VueRouter({
      mode: 'history',
<--!配置单页应用的基路径,页面这样访问 http://localhost:8080/page/aa/ 和 http://localhost:8080/ 访问的效果是一样-->
      base:'/page/aa',
      routes
  });

哈希模式(hash mode)

hash模式是开发中的默认模式,url中永远带着#号,在浏览器方面支持度很好,甚至兼容低版本的ie浏览器,比如这个 URL:http://www.abc.com/#/hello,hash 的值为 #/hello。它的特点在于:hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。
网易云音乐的首页用的就是哈希模式.

历史模式(history mode)

在url中不带#号,用的是传统的路由分发模式,即当用户输入一个url时,是由服务器在接受用户的这个输入请求,并由服务器解析url的路径然后做相应逻辑处理。如果要做到改变url但又不刷新页面的潮流效果,就需要前端用上pushState和replaceState两个H5的api(需要特定浏览器支持),这两个方法应用于浏览器的历史记录栈,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的功能。把url替换的同时又不刷新页面,但需要后端人员去配置url重定向的问题,不然在访问二级页面时,做刷新操作会报404的错误。

因此可以说,hash 模式和 history 模式都属于浏览器自身的特性,Vue-Router 只是利用了这两个特性(通过调用浏览器提供的接口)来实现前端路由.

实际上不管带不带#号,真正愿意去记住你的域名,直接在地址栏输入的用户很少,其实绝大部分人都不关心这个,要么从书签栏进入,要么从百度搜索官网名字进入。

相关文章

网友评论

    本文标题:Vue-router中的history模式和hash模式

    本文链接:https://www.haomeiwen.com/subject/xqmkmktx.html