为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

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

正在回答

1 回答

关于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会默认加一个#号,这样,方便进行路由的管理,做到页面的平滑切换而不刷新。

0 回复 有任何疑惑可以回复我~
#1

慕慕8026351 提问者

大概明白一些了,十分感谢老师的耐心解答
2019-09-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信