hash和history的模式

本文介绍了两种前端路由方式:hash模式利用hashchange监听地址变化实现按需加载,而histore模式通过pushState和replaceState方法改变路径,可能导致页面刷新和404问题。
摘要由CSDN通过智能技术生成

hash模式:

  通过hashchange监听url中的hash来进行路由的跳转。

  概述hash指的是地址中#号以及后面的字符,这个#就是hash符号,中文名哈希符或锚点,哈希符后面的值,我们称之为哈希值。如 http://localhost/index.html/#/hello,这里的#/hello就是hash

  特点:hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。
 
路由的哈希模式其实是利用了window可以监听onhashchange事件,可以实现监听浏览器地址hash值变化,执行相应的js切换网页。这么一来,即使前端并没有发起http请求它也能够找到对应页面的代码块进行按需加载。

histore模式:

  概述:window.history 属性指向 History 对象,它表示当前窗口的浏览历史。当发生改变时,只会改变页面的路径,不会刷新页面。History 对象保存了当前窗口访问过的所有页面网址。
 
下面介绍一下H5新推出的两个神器:pushState()与replaceState()方法
作用:就是可以将url替换并且不刷新页面。在hash模式下,前端路由修改的是#中的信息,而浏览器请求时不会将 # 后面的数据发送到后台,所以没有问题。但是在history下,你可以自由的修改path,当刷新时,如果服务器中没有相应的响应或者资源,则会刷新出来404页面。

  

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值