我在自己实现路由的时候都是用的#
后边接路径,但是我想知道现在的框架为什么可以不用#
,直接用/
就实现路由的呢?不带#
直接用/
不会跳到新页面吗?那样就不是单页面应用了啊??
我在自己实现路由的时候都是用的#
后边接路径,但是我想知道现在的框架为什么可以不用#
,直接用/
就实现路由的呢?不带#
直接用/
不会跳到新页面吗?那样就不是单页面应用了啊??
通常前端处理url地址,也就是你这里说的路由,采用#
,页面不会刷新。当然,现在可以结合history的popstate相关的可以实现页面内容的更新(注意,还是可以做到内容不刷新)。
路由控制一般是后端配合,如果你真要想前端通过/
,而不是#
实现不刷新更新内容的话,需要后端配合。
注意这里,一个需要后端端配合,一个不需要后端配合,这里说的是路由控制。
这个需要了解下后端路由控制处理,就可以知道为什么可以。
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
可以使用
/
呀,可以使用history.replaceState/pushState
这套history的API来修改页面URL而不跳新页面。比如ReactJS中就提供了
Router.HistoryLocation
来做这家事情。具体细节请参考:
操纵浏览器的历史记录 - MDN
再谈 React Router 使用方法