路由配置看似正常,页面为何空白?
背景
先看看问题所在:
1、浏览器访问/personal/userInfo内容展示区空白
2、控制台警告->无法匹配到当前访问的路由地址/personal/userInfo
找问题
(1)打开路由配置文件,发现配置的path、name、component都有,而且单词无误,如图:
(2)检查位置是否正确放置(即路由组件的挂载容器)。
通过上边两种方式,发现并不能发现问题所在,已经开始抓挠了😢。
我寻思着路由组件路径以及路由组件挂载的地方都无误,为什么打开的还是空页面???
经过我多年的开发经验,于是我开始全局搜索以/personal开头的文件,直到我发现如下:
上图表示在当前路由配置文件的/back下出现了personal这个路径,和上边最外层配置的路由路径名称personal同名了。于是我把/back下的personal先注释掉,访问原先最外层的/personal对应页面,发现能正常展示内容了。
问题顺利解决了?🤔
接着我把/back下的personal更改命名为personalCenter, 即现在路由文件中有/personal和/back/personalCenter,path不冲突了。然后打开页面,发现原先访问的/personal路由页面又空白了。但是既然能走到这,离解决bug也不远了!
我马上回到代码中看,仔细对比这两个路由配置之间的差异,很快发现name属性就是那个罪魁祸首,两个name都叫个人中心,这就是bug所在,而不是path路径问题。原来vue会严格判断路由配置中是否存在相同name,如果存在后者生效!
总结
- 在进行路由配置时不允许出现相同的name,否则会出现后者覆盖前者问题。
- 出现问题可以去vue官网查看,官网往往是最详全面的。
- 平常学习、写demo、写项目时养成记录出现bug、如何解决bug的好习惯,下次遇到相同问题就能快速解决了~
这是我的第一篇文章,欢迎各位大佬与友友评论指正~