Flux框架...登陆流程...

恩...新的项目使用的是 Flux搭建的,最近正在熟悉代码..

看过的并不算是掌握,还是写出来试试吧...


以 账号登陆作为例子...


1.登陆按钮按键监听.获取账号密码,分别进行 正则等系列判断...

创建 账号模块的ActionsCreator...

然后 调用该Action:
ActionsCreator.getInstance().login(LoginActivity.this, mobile, password);



2.ActionsCreator内Action方法的创建.....

public void login(MyBaseActivity activity, String mobile, String password) {
        LoginBean bean = new LoginBean();
        bean.mobile = mobile;
        bean.password = RSAUtils.encryptedCode(activity, password);

        activity.addRequest(activity.getService(LoginApiService.class).getLogin(bean),
                new BaseCallBack<LoginModel>() {
                    @Override
                    public void onSuccess200(LoginModel model) {
                        mDispatcher.dispatch(new LoginSuccessAction(model));
                    }
                });
    }
调用封装好的 BaseActivity内的 addRequest方法,有1个参数,2个参数和4个参数...

恩,使用2个参数.分别是call和callback

call参数,使用retrofit对需要进行联网操作的封装在对应的ApiService类内...

将ActionsCreator传递过来的信息...也就是 账号,密码进行封装,封装在bean里面...

交给retrofit进行联网操作...

返回Simplecall...和返回结果...

callback根据需求调用BaseCallback或者SimpleCallback......



3.返回success后...

调用APP内唯一的  Dispatcher...对整个Action进行调度...

Dispatcher的dispatch方法内调用 EventBus,将该Action发送给所有的订阅者...


4.dispatch发送出去的Action,继承自BaseAction...

该Action内包含retrofit请求成功的结果...


5.在第3步...dispatch将该Action通过EventBus将Action发送给所有订阅者...

对应的创建账号模块的Store...也就是LoginStore

该Store继承自BaseStore,对Dispatcher进行了订阅...

接收到来自 dispatch发送过来的Action..

因为该Action内包含retrofit请求成功后的结果...

在store里面对该结果进行处理...

处理完成后,封装在Event里面,再通过EventBus发送给订阅该store的View,也就是UI


6.从View内将需求通过ActionsCreator传递给Dispatcher...

ActionsCreator内该Action通过retrofit对联网操作进行处理,返回call

然后将call的结果封装成Action通过Dispathcer内的EventBus传递给所有订阅的Store

Store内拿到该Action,对其进行处理,

然后将View需要的结果封装成继承自BaseEvent的event内...

再通过继承自BaseStore,绑定的Dispatcher的方法,EventBus将该event发送给View

最后View拿到event的结果...

走完一个完整的流程...


整个APP对应的:

1个Dispatcher

多个与需求功能模块相对应的ActionsCreator和Store

通过EventBus对数据进行传递

数据传递是单向的


附上Flux官方框架图:




恩,最后不得不说一句,mac真心好用.......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值