location.hash详解[通俗易懂]

location.hash详解[通俗易懂]了解vue-router原理中更新URL但不重载页面原理之一location.hash1.存在形式及意义一般情况下为URL后"#"及其后面一部分组成,如http://www.test.com/#/something,其中http://www.test.com为真实的路径,而#/something则为网页中的位置,称之为锚点在访问锚点时会自动跳刀锚点所在的网页位置,通常有两种方式作为锚点<…

大家好,又见面了,我是你们的朋友全栈君。

了解vue-router原理中更新URL但不重载页面

原理之一location.hash

1.存在形式及意义

一般情况下为URL后 “#” 及其后面一部分组成,如http://www.test.com/#/something,

其中http://www.test.com为真实的路径,而#/something则为网页中的位置,称之为锚点

在访问锚点时会自动跳刀锚点所在的网页位置,通常有两种方式作为锚点

<a name=”something”></a>

<element id=”something”></element>

以上两种均可通过http://www.test.com/#/something使页面滚动到该元素的位置

2.hash的读写

location.hash可读可写的

//当前URL为http://www.test.com/#/something
location.hash;		        //输出 #/something

location.hash = '#/test1';	//http://www.test.com/#/test1,并且会新增一条历史记录

在对hash写时有个需要注意的地方,如下所示

//当前URL为http://www.test.com/
location.hash = "#/test"	//http://www.test.com/#/test
locationl.hash = "/#/test"	//http://www.test.com/#/#/test

当写入第一个字符不为为 “#” 时会自动生成一个 “#” 在字符串之前,再把字符串追加到生成的#后面

这样会造成有两个#,此时location.hash输出 “#/#/test”

3.onhashchange事件

在hash值发生变化时会触发该事件

window.onhashchange = function(e){
	console.log(e);
}

总结:

location.hash与HTML5 history类似,都能够在改变页面的URL而不会引起浏览器的重载

但是location.hash支持比较早的浏览器,而history是在HTML5的新API,可能某些较早的浏览器不支持

因此在vue-router中对此做了两种模式,即history模式与hash模式可以适应不同的浏览器

具体解释之后更新vue-router的原理分析

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158355.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 从零开始学习UCOSII操作系统4–任务管理

    从零开始学习UCOSII操作系统4–任务管理从零开始学习UCOSII操作系统4–任务管理1、重讲任务(1)任务可以是一个无限的循环,也可以在一次执行完毕后被删除。这里需要注意的是,任务的代码并不是真正的删除了,而是UCOSII不再理会该任务代码,所以该任务代码不会再执行。(2)建立任务,OSTaskCreate()如果想让UCOSII管理用户的任务,必须先建立任务,可以通过将任务的地址(函数名)和其他参数传递到

    2022年5月24日
    42
  • ADB Shell 命令_手机adb命令大全

    ADB Shell 命令_手机adb命令大全文章目录查看前台Activity调用Activity查看正在运行的Services调用Service发送广播查看应用详细信息查看应用列表清除应用数据与缓存查看屏幕分辨率查看屏幕密度屏幕截图录制屏幕查看前台Activityadbshelldumpsysactivityactivities或者adbshelldumpsysactivitytop调用Activit…

    2022年10月18日
    2
  • 常见的Java框架有哪些?[通俗易懂]

    常见的Java框架有哪些?[通俗易懂]Java语言仍然是当下“程序猿”们最爱使用的热门编程语言之一,想要进入这个行业,Java可以为你引路,很多初学的人可能没有系统的了解过Java框架都有哪些。今天为大家整理一下常见的Java框架都有什么?Java框架1.Spring框架Spring框架是现在Java后端框架家族里面最强大的一个,拥有IOC和AOP两大利器,简化了开发的复杂性。而且Spring现在能与所有主流开发框架集成,是一个万能框架,Spring让Java开发变得简单。2.SpringMVC框架这是一个MVC的开源框架用来代替

    2022年7月9日
    18
  • 安装 Prophet

    安装 Prophet本安装文档主要翻译整理自ProphetInstallation官方安装文档。在R上安装Prophet一、Windows系统安装Prophet前的准备工作如果是Windows系统,需要按照rstan提供的教程给R安装一个编译器。其中,最为关键的一步就是先安装Rtools。1.安装R和RStudio2.安装Rtools,确保其安装…

    2022年6月25日
    84
  • tf需求文档_服务营销第八版pdf

    tf需求文档_服务营销第八版pdf
    ©2006-2011Microsoft|GetHelp|PrivacyStatement|TermsofUse|CodeofConduct|AdvertiseWithUs|Version2011.2.1.17601

    2022年9月16日
    2
  • Android加密篇 AES

    Android加密篇 AESAES加密是一种高级加密标准,是一种区块加密标准。它是一个对称密码,就是说加密和解密用相同的密钥。WPA/WPA2经常用的加密方式就是AES加密算法。importjava.io.UnsupportedEncodingException;importjavax.crypto.Cipher;importjavax.crypto.spec.SecretKeySpec;publicclassAESUtils3{/*算法/模式/填充*/privatestatic.

    2022年5月13日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号