关于根url后自动添加“#”的问题
在浏览器中输入http://localhost:8080/时回自动添加#/后缀,
麻烦能解释下具体的原因么?
如果在新建Router时设置属性mode: 'history',就不会在根url后添加“#”。
在浏览器中输入http://localhost:8080/时回自动添加#/后缀,
麻烦能解释下具体的原因么?
如果在新建Router时设置属性mode: 'history',就不会在根url后添加“#”。
2019-09-12
关于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会默认加一个#号,这样,方便进行路由的管理,做到页面的平滑切换而不刷新。
举报