ReactNative Flux框架使用 基础篇
2017-05-02 14:25
746 查看
Flux框架应用—基础
一、基础概念介绍
1.register(function callback):string
注册监听器,用于监听任何的dispatched payload2.unregister(string id)
取消某个dispatch的监听3. waitFor(array ids):void
可以使当前执行的dispatch,等到某个指定的dispatch执行完之后再执行4.dispatch(object payload):void
发送一个dispatch给所有的监听器5.isDispatching():boolean
判断当前的dispatch是哪个二、基础功能封装
1.创建AppDispatcher.js文件
作用:封装并暴露各种方法(1) 引入Flux框架
import { Dispatcher } from 'flux';
(2) 实例化Dispatcher类
const flux = new Dispatcher();
(3) 暴露各种方法
注册监听方法
export function register(callback) { return flux.register(callback); }
等待方法
export function waitFor(ids) { return flux.waitFor(ids); }
分发方法:分发单个动作
export function dispatch(type, action = {}) { if (!type) { throw new Error('You forgot to specify type.'); } if (process.env.NODE_ENV !== 'production') { if (action.error) { console.error(type, action); } else { console.log(type, action); } } flux.dispatch({ type, ...action }); }
分发方法:分发promise类型的三个动作
export function dispatchAsync(promise, types, action = {}) { const { request, success, failure } = types; dispatch(request, action); promise.then( response => dispatch(success, { ...action, response }), error => dispatch(failure, { ...action, error }) ); }
2、创建ActionTypes.js文件
(1) 引入keymirror框架import keyMirror from 'keymirror';
框架介绍
通过该框架创建的对象,对象中的value值等于key值,通俗的讲,当你创建{key:value}时,key===value
(2) 代码实现
export default keyMirror({ USER_LOGIN: null, USER_LOGIN_SUCCESS: null, USER_LOGIN_ERROR: null, USER_INFO_UPDATE_NAME: null, });
3、实际应用
(1) register()方法的实现import { register } from 'AppDispatcher'; import ActionTypes from 'ActionTypes'; register(action => { switch(action.type) { case 'USER_INFO_UPDATE_NAME': this.setState({ nickName: action.response }); break; } });
使用说明:
register()方法的参数是function类型,demo中使用了箭头方法的方式,接收到的内容都在箭头方法的action参数中,根据action的类型进行相关操作,这里是修改用户昵称
(2) dispatch()方法的实现
import { dispatch } from 'AppDispatcher'; import ActionTypes from 'ActionTypes'; dispatch(ActionTypes.USER_INFO_UPDATE_NAME, {response: this.state.nick});
使用说明:
参数一:action的类型
参数二:具体的action,Object类型
相关文章推荐
- ReactNative之Flux框架的使用
- react-native 基础:react-native-router-flux 的使用[意译]
- ReactNative Flux框架使用 进阶篇
- ReactNative之Flux框架的使用
- React Native是一套使用 React 构建 Native app 的编程框架
- react-native-router-flux 使用详解(二)
- ReactNative React-native-router-flux框架---刷新当前页面的属性
- Android中使用react-native框架中的View组件如何使其中的文本换行
- ReactNative基础(八)了解FlatList的使用、添加头尾布局、下拉刷新、上拉加载
- React-Native 基础(三) 使用State改变状态
- react-native-router-flux 使用详解(三)
- React-Native学习笔记之:弹框框架Popover简单使用
- React-Native学习笔记之:使用Tab react-native-tab-navigator框架
- react-native-router-flux使用技巧
- React-Native 基础(六) 使用Flexbox布局
- react-native-router-flux 使用详解(一)
- react_native_router_flux_使用详解(二)
- React-Native 之 GD (一)目录结构与第三方框架使用与主题框架搭建
- react-native使用flux
- React Native入门基础框架