我这样配置的路由,但是访问http://localhost:5000/#/query 就可以访问到子路由/query ,这个#号有什么用?为什么不用访问/index/query?
1 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
1.为什么是#/query而不是/index/query,是因为你声明的路由是/query,是直接针对根路径的,如果访问时显示/index/query,需要将子路由改成上面那样,是需要手动声明的,不是说index的子路由就会自动带上index的路径前缀。
子路由的path参数如果可以写 :/父路由/子路由(即/index/query),也可以直接/子路由,不是必须带有父路由的前缀,带有父路由表示一定的从属关系,不是必须的。
2.#表示hash路由模式,hash模式会在URL后加#看上去不是那么好看,但是一般的功能上都没问题的。重要的是,另外#后面的部分服务端无法识别,即向服务器提交的只是#号前面的url地址。
history模式,另一种路由模式,如楼上那样可以转换成history模式,比hash跟美观,而且会提交完整的url,这个需要服务端来配置,不然服务器会返回404。
添加回答
举报
0/150
提交
取消