在开发vue2项目的过程中,我遇到一个问题:我有一些页面,每个页面都会用到两个公共子组件,现在这两个公共子组件中有相同的查询条件的下拉值域需要请求获得。我这个请求的代码写在哪里合适?
我想了几种方案:
- 通过子->父->子的数据传递方式,只在一个子组件中请求再传递,但这样破坏了数据的流动;
- 在父组件中查询一次,传递给两个子组件,但是这样每个父组件中都要特殊处理,并且这个数据应该是属于子组件的;
- 两个子组件分别请求,这样会有重复请求;
- 通过vuex来保存请求的值共享,但感觉有点大材小用;
- 通过事件总线来传递,但是我每个页面打开希望重新查一次并且结果不影响其他页面,用事件总线除了当前打开页面还会影响缓存的页面。
目前的方案中我选了第二种,但感觉这几种方式都不太合理,想想在vue2中有没有更优雅的写法呢?