reflux web 中store

创建动作,在仓库里监听动作方法,定义动作方法。在调用动作方法时会触发仓库上对应的监听方法。<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扩展方法的二种方法



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值