基于vue框架项目开发过程中遇到的问题总结(三)

这次遇到的一个问题困扰了我很久很久,大致就是vue路由的addRoutes方法的使用,每次在调用了这个之后router对象中并没有将路由添加进去,接下来,我一步一步的分析原因及解决方法(个人见解,仅供参考)

(1)先看看我的失败的代码

store.getters.addRouters我存在vuex中,但是实际是存于session中的,所以刷新后是不会丢失数据的

在app.vue的mounted输出this.$router对象,发现options.routes数组并没有将动态路由添加成功,这个问题困扰了很久,最后找到原因是执行了window.location.reload();使得页面重新加载了,解决办法是:在beforeEach里判断当前路由是否已经有动态路由了,如果没有则添加,并且拉取用户信息的处理不放在登录成功之后,这样就不会受reload的影响

(2)第二版代码

这样改了之后,理论上应该可以了,输出this.$router对象,发现options.routes数组还是没有将动态路由添加成功,

在网上找了解决方案,手动将需要添加的路由添加到options.routes数组(由于路由的所有信息我是在vuex存了的,所以直接全部赋值给了options.routes)

做到这一步,已经完成大部分了,options.routes数组有数据了,动态添加的路由可以正常跳转,页面也有内容,但是很快我又发现一个问题,动态添加的路由页面一刷新就凉凉了(空白),在地址栏输入其他动态添加的路由又是可以正常跳转的,这就很尴尬了。参考了https://github.com/PanJiaChen/vue-element-admin/blob/master/src/permission.js ,找到了解决方法

将next()换成next({ ...to, replace: true }),// hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record

进行到这一步,基本上就已经可以了,这个问题网上有很多类似,但是他们登录跟我不一样,也没有window.location.reload();这一步,所以解决起来还是有不一样的地方

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Vue开发过程,出现警告问题可以根据警告信息进行相应的处理和去除。 1. 首先,需要明确出现警告的原因,可以通过控制台输出的警告信息来定位问题所在。警告信息通常包含错误提示和所在文件路径等提示信息,根据这些信息可以初步判断是哪个组件或者代码段出现了问题。 2. 一种常见的警告问题是未定义属性或方法。这可能是因为在组件的模板使用了不存在的属性或方法,或者属性名或方法名被拼写错误。解决方法是检查相关的模板代码和组件逻辑,确保属性和方法名正确,并确保引入了可能需要的组件或库。 3. 另一种常见的警告问题是未正确绑定或传递props。这可能是因为在父组件有正确传递props给子组件,或者子组件有正确声明和接收props。解决方法是检查父组件和子组件之间的联系,确保正确传递和接收props。 4. 如果出现了关于Key的警告,这可能是因为在v-for循环有正确给每个子元素设置唯一的Key。解决方法是在v-for循环给每个子元素添加唯一的key属性,通常可以使用循环的索引或者每个子元素的唯一标识作为key值。 5. 如果出现了关于事件监听器的警告,可能是因为在组件添加了重复的事件监听器,或者事件监听器有正确移除。解决方法是检查对应的组件代码,确保事件监听器只添加一次,并且在组件销毁前正确移除事件监听器。 总之,在开发过程遇到警告问题需要仔细查看相关提示信息,逐步排查和解决问题。可以依靠控制台输出的警告信息,结合对Vue框架的理解和经验,找到问题所在并进行相应的处理和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值