vue需要被缓存的组件在登录权限验证拦截,登录完成后没有加载数据,只需要获取一次数据

问题点:

1.组件实例是需要缓存的

2.组件数据加载时需要登录权限

3.组件被拦截后没有再次获取数据

解决方式:

对于以上三个问题需要分解解决。

1.组件需要缓存的话直接可以 在路由中配置相关元信息字段,然后在路由渲染出口添加路由缓存标签

2.组件数据加载时需要登录权限:这个实现的方式比较多,①可以定义接口返回码,根据返回码确定是否需要登录,然后做相应跳转。②使用vue-resource或者axios时配置全局拦截器,当然也必须结合缓存确定登录状态,来实现拦截跳转。③在组件生命周期钩子中判断登录状态需要结合缓存,实现拦截跳转。

3.解决了前两个问题后,第三个问题来了,拦截后的组件实例在登录完成后不会加载数据,因为该组件已经被缓存了,除非在activated函数中获取数据(这样会违背缓存的初衷),所以解决凡是就是:在mounted中和获取数据,在拦截时将本组件手动销毁,当然在销毁之前(beforeDestroy)做跳转

问题成功解决!!由于涉及的代码较多,没有具体代码,因此只有实现思路,欢迎大家批评指正!

你可能感兴趣的:(大前端开发)