Airbnb开源框架,真响应式架构——MvRx,Epoxy

> Airbnb开源框架,真响应式架构——MvRx

Airbnb开源框架,真响应式架构——MvRx- https://mp.weixin.qq.com/s/pttfFzkAO5MnwscXDX-dDw
Airbnb开源框架,真响应式架构——MvRx: https://github.com/airbnb/MvRx
  MvRx 有四个重要的概念,分别是 State、ViewModel、View 和 Async。
有了 Epoxy 的帮助,绝大部分界面都可以放入RecyclerView 中。对于不适宜使用 RecyclerView 的界面,或者 RecyclerView 之外的一些界面元素,MvRx 至少也提供了与 Android Architecture Components 相似的能力,并且其与 RxJava 的结合更加的友好。
  这个库综合运用了以下几种技术:Kotlin (MvRx is Kotlin first and Kotlin only);Android Architecture Components;RxJava;React (概念上的);Epoxy (可选但推荐);

 MVP 模式在 Android 界一直很流行,因为它比较好理解。其核心思想是,通过接口隔离数据与显示,数据的变动通过接口回调的方式去通知界面更新。这正是典型的命令式 M-V(数据-显示)链接。在这种模式下 View 层是完全被动的,完全受控于 Presenter 层的命令。这种模式并没有什么大问题,只是有一些不太方便之处,主要体现在 M-V 的紧密链接,导致复用比较困难,要么 View 层需要定义不必要的接口(这样 Presenter 可以复用),要么就需要为几乎每个 View 都定义一个对应的 Presenter,想想都心累。

- MvRx 的真响应式 MVVM
MvRx 构建的 MVVM 模式,完美地解决了上述的问题。MvRx 放弃了LiveData,使用State 来通知 View 层数据的改变(当然仍然是可感知生命周期的)。MvRx 可以方便地把RxJava Observable 的请求过程包装成 Ansyc 类,不仅可以改变 State 来通知 View 层,而且也包含了数据加载的状态(成功、失败、加载中等)。如果结合 Airbnb 的另一个开源库 Epoxy,那么几乎可以做到真正的响应式,即View层在数据改变时仅仅描述当前数据状态下界面的样子,Epoxy 可以帮我们实现与之前数据状态的比较,然后找出差别,仅更新那些有差别的 View 部分。这是对 MvRx 的大致描述。下面来看看 MvRx 是如果使用的。

> Epoxy

Epoxy——RecyclerView的绝佳助手- https://www.jianshu.com/p/369c08c29593
Epoxy is an Android library for building complex screens in a RecyclerView- https://github.com/airbnb/epoxy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值