vue加载初始化

911 阅读1分钟

情景

最近在做vue项目碰到这么一个需求,我需要在初始化的时候在全局请求一个值,拿到此值后,里面具体的页面的在初始化的时候都需要用到这个值。

自己想到的解决方案

  • 全局路由beforeEach做拦截
  • 具体页面尾递归查询拦截
  • 拿到值后页面reload
  • 入口文件拦截初始化

优劣

  1. 优点: 全局路由导航首卫拦截最方便,也充分利用了vue-router带来的便利。

    缺点: 本质只需项目初始化时加载,有点浪费的感觉。

  2. 优点: 具体页面尾递归查询拦截,可以做到具体对待,最简单也最直接。

    缺点: 页面太多,需要每个页面去添加,并且有爆栈的可能。

  3. 优点: 拿到值后页面reload,纯属投机取巧。

    缺点: 页面会闪一下,体验不好。

  4. 优点: 入口文件拦截初始化,主要是判断是否拿到该值,拿到后在进行vue的初始化(new Vue),否则处于等待。

    缺点: 没拿到值之前,页面一片空白,等待时间长时体验差。

总结

全局路由导航首位beforeEach相比较之下最好,入口文件初始化拦截其次,剩下两个不推荐。