创建动作,在仓库里监听动作方法,定义动作方法。在调用动作方法时会触发仓库上对应的监听方法。<br/>
这时监听方法内可以获取调用动作时的参数。在这里可以做get请求,从服务器获取数据。<br/>
回调里设置仓库数据并调用组件对仓库的修改回调。trigger(data)<br/>
组件change内修改组件state值。这时触发渲染机制。<br/>
流程:<br/>
创建动作指定动作名,但不写动作方法。<br/>
在仓库上监听动作并编写动作方法,方法内可以来获取服务器数据<br/>
组件上监听仓库变化来获取仓库数据更新组件数据<br/>
这时监听方法内可以获取调用动作时的参数。在这里可以做get请求,从服务器获取数据。<br/>
回调里设置仓库数据并调用组件对仓库的修改回调。trigger(data)<br/>
组件change内修改组件state值。这时触发渲染机制。<br/>
流程:<br/>
创建动作指定动作名,但不写动作方法。<br/>
在仓库上监听动作并编写动作方法,方法内可以来获取服务器数据<br/>
组件上监听仓库变化来获取仓库数据更新组件数据<br/>
视图动作通过触发动作来实现。
//Store可以响应Action的行为,并同服务器交互。 /* 异步动作 asyncResult 相当于griggerParmise 在store内的监听方法内发请get请求,回调里调用动作的成功和失败函数并传递值 在调用动作时后添加then成功函数和catch失败方法 */ var getAll=Reflux.createAction({asyncResult: true}); var todoStore2=Reflux.createStore({ init:function(){ this.listenTo(getAll,this.onGetAll) }, onGetAll:function(model){ console.log('onGetAll',model); $.get('http://weixin.ishangwo.cn/api/photopair/game?pid1=123',function(data){ if(data){ getAll.completed(data); }else{ getAll.failed(data); } }) } }) getAll({name:'cc'}).then(function(data){ console.log('success',data) }).catch(function(err){ console.log('err',err) })
store方法中可以通过get 来获取数据,也可以接收参数实现获取不同数据。
/* 给store添加公用方法 一: */ Reflux.StoreMethods.print=function(str){ console.log(str); } var todoStore3=Reflux.createStore({ }) todoStore3.print('cc') /* store创建时可以通过mixins属性来扩展方法, 但扩展的对象内方法只能在此对象上访问。 */ var mixins={ log:function(str){ console.log(str); } } var todoStore4=Reflux.createStore({ mixins:[mixins] }) todoStore4.log('log')
store扩展方法的二种方法