vue-rxjs-starter,我完全放弃vuex了,用RxJS抽象出一个service,简直不要太爽
发布于 7 年前 作者 twolun 8694 次浏览 来自 分享

项目地址:https://github.com/twolun/vue-rxjs-starter

意图

  1. vue-resource天然返回Promise,这就为我们使用RxJS提供了很好的基础条件,而实际项目中, 大多数业务场景是基于http请求的异步操作,这也是RxJS擅长的地方

  2. 在项目中抽象出一个service层,来集中处理各种http请求及业务逻辑,
    组件级的UI交互、状态变更,还是放在组件内操作

  3. 完全放弃vuex,使用基于RxJS的service层进行开发,还是比较得心应手的

  4. 把与组件无关的流尽量放在service里处理,组件相关的在组件内处理

  5. 最终我们的代码还是很简洁的

最重要的

service采用单例模式,当然实际项目中不经常变的http-result,要做缓存,避免每次请求
8 回复

状态有状态的好处啊

Vuet也能够很轻松的管理业务中的HTTP请求,天然的支持根据路由变化来更新组件状态 传送门:Vuet地址 你可以看下这篇vuet插件之route:实现简易版vue-cnode,实现列表点击详情返回后显示之前的数据

哈哈,不介意我顺便打个广告吧。Vuet目前正在完善测试,后续还会增加支持还原全局滚动条,局部滚动条的功能

@i5ting 狼叔也关注了,哈哈

这是不是让我感觉到有点像angular的 service?

如果组件之间需要共享状态呢?

service应该只保留数据请求的部分,把数据请求从组件中抽离出来是一个普遍的做法,但是这并不是VUEX所要解决问题的点。。

楼主项目里面search.service.js的一些页面交互逻辑如果不是通用的方法放到组件并没有什么问题,如果是通用的逻辑可以另外提取到一个地方,让service更纯粹。

@178220709 组件的状态应该放在组件里,跟service没关系吧

状态管理里面action不就都相当于service方法么, vue官方全家桶这么简单好用, 你的痛点在哪? vue-resource官方都放弃维护好久了, axios挺好, 前后端都用.

回到顶部