关于根url后自动添加“#”的问题

来源:4-4 单页面应用 Demo2(1)

慕慕8026351

2019-09-12 20:07

在浏览器中输入http://localhost:8080/时回自动添加#/后缀,

麻烦能解释下具体的原因么?

如果在新建Router时设置属性mode: 'history',就不会在根url后添加“#”。

写回答 关注

1回答

  • Brian
    2019-09-13 01:19:58
    已采纳

    关于Vue router的模式,可以参考官方的文档来了解:

    具体这样做的原因?设计路由就是为了提高用户体验,而设计两种不同的模式,是针对了不同的业务场景。

    使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。

    这里有几个角度来思考这个问题:

    角度一:Vue设计之初,对于流行的单页面应用,为了提高页面的过渡,减少页面的刷新,引入了路由的概念。那么,路由的设计的时候,有的时候,我们需要去取参数(比如路由的路径);有的时候,像在一些与动态语言配合的时候,需要绝对的路径;还有一些特别的情况,比如微信环境,#号就经常被截断了。

    那么,这个时候,使用#号配合 history.pushState API 来完成 URL 跳转而无须重新加载页面。

    角度二:这个就是配置的原因,Vue的默认配置就是mode: 'hash'。这个参考一下,官方的文档:https://router.vuejs.org/zh/guide/essentials/history-mode.html。如果,没有设置,vue会默认加一个#号,这样,方便进行路由的管理,做到页面的平滑切换而不刷新。

    慕慕8026...

    大概明白一些了,十分感谢老师的耐心解答

    2019-09-13 16:00:26

    共 1 条回复 >

3小时速成 Vue2.x 核心技术

带你快速学习最流行的前端框架vue2.x的核心技术

82560 学习 · 487 问题

查看课程

相似问题