Reflux 入门 TodoList
学习Reflux已有三月有余,最近不忙便做个了小demo来校验下自己对于react,reflux的理解。
demo地址
Usage
|
|
Demo Show
Reflux是什么?
首先我们已经认识了React是一个通过数据来驱动页面渲染的View层,那么数据之间的通信就会随着应用的扩展变得越来越复杂,常见的数据通信模式有:
- 父组件到子组件
- 子组件到父组件
- 祖父组件到孙组件
- 兄弟组件之间
所以facebook提出了Flux架构的概念,随之而产生了许多类似实现的解决方法,最常见的就是 Redux和 Reflux 了。
Reflux长啥样?
|
|
先盗一张官网的图
Reflux分为三个部分:
Action
通过用户来触发事件(Publisher)
Store
- 监听Action(Subscriber)
- 触发View更新页面 (Publisher)
- View
- 监听Store的变化,及时更新页面(Subscriber)
这样我们就很清楚的知道我们要怎么做了
简单实现Reflux的三个步骤
首先目录结构为12345--components |- doSomething |- doSomething.jsx |- actions.js |- store.js
创建Action
Action的定义方法有两个:
Reflux.createAction()
作用:创建单个action
函数接收的参数为一个对象
1234567891011{actionName: 'myActionName', //action名字children: ['childAction'],//用于异步操作时创建子actionasyncResult: true,//为true时会自动创建 `completed` 和 `failed` 两个子action,可以认为是设置子action的快捷方式sync: false,//为true时指定action的默认触发方式为同步preEmit: function()shouldEmit: function()}Reflux.createActions()
作用:顾名思义,创建多个action
函数接收的参数为一个数组,里面的数组项为上面的对象
当然最简单的方法只需要传入actionName即可
1234567// actions.jsmodule.exports = Reflux.createActions(['doSomething1','doSomething2',...]);
创建Store
- Reflux.createStore()
|
|
View如何触发action,绑定Store
|
|
这样我们就完成了最基本的 Reflux的实现。
PS
欢迎各路好汉火钳留star!