单页面路由跳转失败,router-view不起作用?

    我想做一个单页面路由跳转的功能,希望实现的是:在我页面的导航栏上有两个url,一个叫首页,一个叫精准传播(为什么叫精准传播不重要)。当我点击首页的时候,下方显示的是首页的内容;当我点击精准传播的时候,下方显示的是精准传播的内容。先上效果图:


其实功能很简单,我看官网demo的时候,也觉得很简单,事实上真的不难。只是步骤没有走错就行。放下我错误时的图:



下面空空如也,没有像我想象中出现内容,并且发生改变。

附上我的代码,没什么复杂的东西。

Header.vue :  导航栏的内容


index.vue, jzcb.vue : 点击后显示的内容,都没什么内容好吧


App.vue :根组件,东西也不多,第4行加载Header组件,第5行渲染index和jzcb组件,当导航栏链接被点击的时候。


route.js: 路由文件,定义了具体路径去调用具体的组件,也没太多东西。一开始以为这一块出了问题,其实不是。不过还是有点细节的。


main.js : 入口文件,初始化Vue实例,并且配置响应的插件。之前这里写错了,所以效果没出来,那时找错方向,百思不得其解。


先说说我最后怎么解决的吧。上面的这些图,其实主要还是看main.js ,上面的main.js的代码是错的,17行是错误的写法。15,16行注释掉的才是正确的写法。

routermap 是我将route.js导出的路由内容的别名。

一步一步来。首先,我在路由文件里怎么写的:

export default [   ......(中间内容省略)     ],default 后用的是[ ],说明我导出的是一个列表。之前看项目代码的时候,很多时候用的都是{ },如 export default{ ...... },这种导出的应该是一个对象,里面一般是 Key:value 类型。我之前没怎么注意到这点,一直以为只有export default{ }这种写法,这惯性很可怕,很致命,很多东西太想当然就完了。总之,我们导出的路由是个列表。

接着看main.js 第17行,其实这样写,最后相当于是这样的:

const router =new VueRouter({   [......(我的路由配置)]      })

但是这是错的,因为我们要里面要传的是一个Key:Value ,而不是一个列表。所以上面那样写,路由不生效,自然没办法找到对应的组件,没办法渲染出下面的内容来啦。

那个Key一定要是routes,Value就是你的路由列表嘛

所以,

1,可以这样写 const router =new VueRouter({ routes: [......(我的路由配置)]      })

2,像我注释掉那两行那样,先用 导出的列表赋给一个常量,然后将该常量传入VueRouter中。

当然,Vue实例中的router也不能忘加进去,不加进去效果也出不来。.

当然,我后面也有疑惑过,new VueRouter({ [......(我的路由配置)]      })和

new VueRouter({ ...(赋值后的常量)      }),这样写怎么就不同了,就算将列表赋值给那个常量,那它应该也还是列表啊。但后面那种就行得通。官网Demo里是这样说的:就是用上面第二种的时候,默认就是 new VueRouter({   routes:你赋值后的常量     }),所以其实这样也就和第一种是一样了。

虽然例子很简单,但是写的时候没经验,很多细节没注意到。所以写少了点什么,或者哪里写错了都要找很久。甚至不知道去哪里改正。

一开始我觉得我路由的配置没错啊,跟demo差不多,所以应该是其他文件的问题吧。其他文件写的也都差不多,应该可以的啊。差不多,是差得不多。可是哪怕差了那么一点点都是跑不出自己想要的效果的。前面一直怀疑是App.vue里的router-view用错了或是写错了,导致它没渲染。最后才发现是配置路由是没写对,匹配不到。

直到刚才,我才发现了我的真正的错误原因。早上在公司的时候,弄成功了,因为好像在index组件中加了export default{ name:'index'},然后就可以了,就以为是没加这个的原因。但是其实还是错误的,只是路由配置误打误撞给我不小心改对了而已。直到晚上,刚好又弄了一次,早上那次是在公司弄的,有成功。晚上这次的代码是昨晚的,还是不成功的版本,我按照早上以为的错误原因给改正了后,发现还是没卵用。又排查了一遍,改正后,才发现原因。

终于写完了,也有点不容易。第一次写博客记录遇到的 坑,以后也会继续记录下去。写得挺烂,挺难看的。哈哈。可能有说的不对的地方。欢迎指正喔。写毕,睡觉。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 相关概念 混合开发和前后端分离 混合开发(服务器端渲染) 前后端分离后端提供接口,前端开发界面效果(专注于用户的交...
    他爱在黑暗中漫游阅读 7,936评论 4 45
  • https://cn.vuejs.org 转载 :OpenDigg awesome-github-vue 是由Op...
    文朝明阅读 11,667评论 0 38
  • 目录 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element ★31142...
    吴佳浩阅读 13,743评论 1 61
  • 姓名:莱菟 性别:女 性格:时而欢乐时而冷淡 种族:龙(应该吧) 年龄:15 身高:173 体重:50kg 食物:...
    巡灵初镜阅读 2,981评论 0 0
  • 掉下无色的泪 稀里又哗啦 蓝色的父亲 白色的天使 红鼻子少女被惊吓 我要妈妈 我要妈妈
    杜洛克阅读 1,337评论 0 1

友情链接更多精彩内容