我是角度js和节点js的新手,我有一些疑问,任何人都可以解释为什么#发生在url之间(localhost:3000 /#/ home)
答案 0 :(得分:3)
#
表示用于在长页面中自动跳转到该部分的标记ID。现在这被java脚本框架使用,例如用于虚拟导航目的的角度,即在#
之后更改部件不会导致浏览器重新加载整页并在内部使用哪个div
元素在SPA中显示/隐藏(单页应用程序)。
答案 1 :(得分:3)
当您在AngularJS中的单页面应用程序中导航时,旧版浏览器无法完全重新加载页面。
它被称为Hashbang,您可以在文档中阅读更多相关内容:
https://docs.angularjs.org/guide/$location#hashbang-and-html5-modes
答案 2 :(得分:2)
这些被称为Hashbang URL。通常,我们在Hash#之后的任何内容都不是另一个URL,但它仍然属于同一个HTML页面。随着JS库的增加和Web浏览器功能的增强,现在我们可以使用HTML5历史API替换URL。
这种hashbang技术用作旧浏览器的后备,即整个应用程序在单个HTML页面上运行,Angular监视URL中的任何#hash更改并触发相应的路由控制器。
我建议您阅读有关hashbang网址的更多信息: Doing links like Twitter, Hash-Bang #! URL's