求解 关于vue2.x 路由跳转时watch数据监听的问题

操作流程如下

  1. 任意一个页面路由下,data 中有个数据 a 为任意值,现在点击页面中一个按钮执行跳转到其他任意路由。
  2. 然后在watch中监听数据 a
  3. 然后在点击跳转路由前修改这个数据 a 为其他值,结果在路由跳转前 watch 能监听到 a 的变化。
  4. 但是如果再切换回来,或者连续切换其他路由几次后再回来最开始的路由,再点击那个按钮跳转就监听不到了。此时刷新下页面,重新操作又可以了。

主要是下面的代码图片问题

img

对应到项目中的实例

  1. 详情页面根据用户是否登录显示不同的页面内容或者是不同的按钮文字。
  2. 用户登录是弹窗登录,用户登录后 watch 监听到页面 data 中数据 isLogin 的变化,然后重新请求接口获取页面内容,让页面展示用户登录应该显示的内容或按钮。
  3. 此时点击页面右上角退出登录并修改 isLogin,然后跳转到注册页面,发现 watch 中的 isLogin 监听到变化了,触发了请求。但是这个问题只触发一次,或者刷新页面后重新操作触发。
  4. 如果退出后在其他页面登录后,切换路由到详情页,再退出不会触发 watch 中的 isLogin 变化。

是否在退出的时候没有将isLogin的值修改回来呢?

对应项目实例 第二条是进入详情页面 出来个弹框登录后拿到islogin 监听的islogin吗? 如果是这样 第三条 退出登录是在详情页退出的 并且修改了islogin 能监听到 且跳转到了注册页面 你watch在详情页里面写的肯定在详情页触发 然后第四条 切换路由值详情页 此时的islogin值 是什么 如果islogin的值没变化 肯定监听不到