上次介绍了下写的登录弹框插件,过了几天发现点击去注册或者改密码的跳转失效。报错this.$router.push is not a function,继续打印this.$router也是undefined

(可以先看一下上一篇博客提到的弹框登录插件)

this.$router.push({ path:'/register'})

尝试了很久,试了三种方法。

需要注意的是:登录弹框是通过this.$login调用方法来动态插入组件的,这个登录弹框不在路由的组件管理范围内。

第一:引入子路由,需要加router-view

但是这样是作为子路由的方式,给当前赋值了路由对象。页面会出现重叠。

第二种:在main.js里把路由对象设为window对象下的某值

然后再loginBod.vue里调用。

结果也能跳转。

但是弹框还在,上面解释过了,路由切换卸载和动态加载不同的组件,但登录弹框是手动挂载上去的,所以需要手动去卸载。

第三种:直接用window.replace

路由router跳转的话,会根据路由对象动态的卸载挂载组件,所以弹框会保留。这种做法是提高性能减少消耗的。默认的路由哈希模式,是去操作哈希值重新定位路径,但是始终是由vue来操作对应的组件资源的。

vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。

顺便提一下这个点:记住一句话,如果本地跑没问题,推上正式有问题,百分之99都是资源路径的问题。

但是通过window.locaiton.replace,replace() 方法可用一个新文档取代当前文档,Dom直接删除,然后重新加载对应的路径资源。

总结:以上方式,推荐第二种,采用路由跳转,而且手动去卸载,针对性的符合场景式去做解决。

反思:找了半天没明白为什么会没有router对象,routerConfig也写了,只能去先找解决方法,有路过的大神多多指教。

最新文章

  1. Atitit.ide技术原理与实践attilax总结
  2. SimpleDateFormate的使用
  3. Maven-eclipse运行maven命令
  4. 2015年11月30日 spring初级知识讲解(一)装配Bean
  5. [原]Hrbust1328 相等的最小公倍数 (筛素数,素因子分解)
  6. int string convert
  7. 在Windows7上搭建Cocos2d-x win32开发环境
  8. PCL点云库中怎样读取指定的PCD文件,又一次命名,处理后保存到指定目录
  9. java7增强的try语句关闭资源
  10. 使用ML.NET预测纽约出租车费
  11. ansible学习(二)
  12. R 脚本读取汇总 Excel 表格数据
  13. pc send instructor pc ad
  14. git命令简洁版
  15. @RequestParam注解一般用法
  16. Git在windows下上传文件至github流程
  17. 转 web.config设置之system.webServer 详细介绍,为网站设置默认文档
  18. redis所有数据结构及对象------redis设计与实现
  19. C++中的二级指针和指针引用函数传参
  20. 20165329 Java实验二:面向对象编程

热门文章

  1. python 常见的异常类型
  2. 通过进入单用户模式解决linux中的rc.local修改后无法启动的问题
  3. (生产)animate.css 动画库
  4. js获取url的参数和值的N种有效方法
  5. C++ Knowledge series Template & Class
  6. 创建Podspec 并且发布到github spec
  7. LoadRunner性能测试之常见函数及参数的说明和作用
  8. 笨办法学Python(五)
  9. Hybris开发环境的license计算实现
  10. Jmeter入门8 连接microsoft sql server数据库取数据