Vue-router的hash和history模式有什么区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1081个文字,预计阅读时间需要5分钟。
一、概念+为了构建+SPA(单页面应用程序),需要引入前端路由系统,这也意味着使用+Vue-Router+。前端路由的核心在于:改变视图的同时,不会向后端发起请求。
一、概念
为了构建 SPA(单页面应用),需要引入前端路由系统,这也就是 Vue-Router 存在的意义。
前端路由的核心,就在于:改变视图的同时不会向后端发出请求。
为了达到这种目的,浏览器当前提供了以下两种支持:
1.hash——即地址栏 URL 中的 # 符号(此 hash 不是密码学里的散列运算)。
比如这个 URL:www.abc.com/#/hello,hash 的值为 #/hello。
它的特点在于:hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。
2.history —— 利用了 HTML5 History Interface 中新增的 pushState() 和 replaceState() 方法。
这两个方法应用于浏览器的历史记录栈,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的功能。
只是当它们执行修改时,虽然改变了当前的 URL,但浏览器不会立即向后端发送请求。
本文共计1081个文字,预计阅读时间需要5分钟。
一、概念+为了构建+SPA(单页面应用程序),需要引入前端路由系统,这也意味着使用+Vue-Router+。前端路由的核心在于:改变视图的同时,不会向后端发起请求。
一、概念
为了构建 SPA(单页面应用),需要引入前端路由系统,这也就是 Vue-Router 存在的意义。
前端路由的核心,就在于:改变视图的同时不会向后端发出请求。
为了达到这种目的,浏览器当前提供了以下两种支持:
1.hash——即地址栏 URL 中的 # 符号(此 hash 不是密码学里的散列运算)。
比如这个 URL:www.abc.com/#/hello,hash 的值为 #/hello。
它的特点在于:hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。
2.history —— 利用了 HTML5 History Interface 中新增的 pushState() 和 replaceState() 方法。
这两个方法应用于浏览器的历史记录栈,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的功能。
只是当它们执行修改时,虽然改变了当前的 URL,但浏览器不会立即向后端发送请求。

