文档章节

yahoo对flux dispatcher的实现,dispatchr

jianglibo
 jianglibo
发布于 2014/11/20 20:19
字数 451
阅读 202
收藏 3

facebook的react是非常出色的一个想法。为什么这么说呢?让我们先看看针对javascript的一些“创新”方法:

1、用javascript本身来实现,比如ember,angular

2、通过最终编译成js的方式,比如gwt,clojurescript。

3、还有服务器一侧计算js的,vaalidan,https://vaadin.com/home

react采用在浏览器内用virutal dom方式,所有的变化都在浏览器内存中,用它的算法计算出最后的给浏览器使用的html,前提是它的算法和计算速度比dom高效。

在react被证明有效的情况下,facebook提出了flux概念,采用单向绑定的方式。yahoo的工程师似乎非常认同react和flux,于是写了这个dispathr。https://github.com/yahoo/dispatchr

它的描述非常简单:A Flux dispatcher for applications that run on the server and the client.

翻译:一个实现Flux概念的dispatcher,为需要同时在浏览器和服务器运行的app。

这里主要记录yahoo的dispatchr的特征。

1、为了适应服务器环境,dispatchr不采用单例模式,而是在每个http请求中实例化。

2、action的注册不使用一个个单独的callback,而是store中的一个单元(这个unit翻译成单元感觉不太对头),用代码展示就很清楚了。

TimeStore.handlers = {
    'CHANGE_ROUTE_START': 'handleTimeChange',
    'UPDATE_TIME': 'handleTimeChange'
};

说白了,既然store的实例化由dispatchr来做,那么dispatchr接到某个action时,自然能够找到对应的store的对应的handler。

3、dispathr的设计,能强迫使用者遵守flux的规范。手段就是通过暴露最小的interface。虽然说是interface,其实不过一种约定而已。

期望yahoo工程师围绕facebook react的一些产品能够得到足够的流行。



© 著作权归作者所有

jianglibo

jianglibo

粉丝 43
博文 59
码字总数 36028
作品 3
奉化
高级程序员
私信 提问
Flux 发送器--Dispatchr

Dispatchr 运行在服务器和客户端上应用程序的 Flux 发送器。 示例代码: var inherits = require('inherits');var BaseStore = require('dispatchr/addons/BaseStore');var MyStore = funct......

孔小菜
2015/05/08
122
0
[译] Flux 入门

转载自 http://segmentfault.com/a/1190000002777101 作者:meikidd 本文将概括性的介绍如何使用 Flux 架构开发 JavaScript 应用,用尽可能少的篇幅带你熟悉 Flux 的核心概念。你也可以结合 ...

失足处男的倒霉孩子
2015/05/19
1K
0
Flux 架构入门教程

过去一年中,前端技术大发展,最耀眼的明星就是React。 React 本身只涉及UI层,如果搭建大型应用,必须搭配一个前端框架。也就是说,你至少要学两样东西,才能基本满足需要:React + 前端框架...

阮一峰
2016/01/15
0
0
【天赢金创】React flux九浅一深

这个是 Facebook 官方学习 Flux 的 todo 例子 想用这个例子来总结一下怎么从零开始用 React 和 Flux 构建一个 App Structure App├─ javascripts│ ├─ actions│ │ ├─ TodoActions.js...

第三方支付接口
2015/09/23
0
0
[译]Android Flux 框架 RxFlux 介绍

原文 简介 RxFlux 是一个使用 RxJava1 实现 Flux模式 的轻量级框架,RxFlux 仅仅提供 Flux 模式的一种实现,它需要手动集成,并且需要开发者遵守 Flux 步骤才可以正常工作。 优势: 架构清晰...

coolfireApy
2017/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jenkins定时构建时间设置

举几个例子: 每隔5分钟构建一次 H/5 * * * * 每两小时构建一次 H H/2 * * * 每天中午12点定时构建一次 H 12 * * * 每天下午18点定时构建一次 H 18 * * * 在每个小时的前半个小时内的每10分钟...

shzwork
17分钟前
0
0
Myeclipse 问题记录

1. 创建maven聚合(pom) 工程 ,子项目会带上 maven app这些文字,删掉后会导致工程文件在working set里消失,解决办法:右键子项目 import as project 解决问题。...

无敌小学僧
44分钟前
1
0
《Chez Scheme初探》定义变量、递归、测试性能、并列代码编写

普通fib函数 (define (fact n) (if (= n 1) 1 (* n (fact (- n 1)) ) )) 尾递归fib函数 (define (fact-tail n) (fact-rec n n))(defi......

flash胜龙
44分钟前
1
0
任正非对华为热点问题的回应亮了,终于知道华为为什么能扛过这一次的冲击!

任正非对华为热点问题的回应亮了,终于知道华为为什么能扛过这一次的冲击! 如果你是华为的老板,看到一条传遍网络的“美国封锁华为”、“华为禁令”的消息,你会怎么办? 昨天上午,华为创始...

forespider
今天
2
0
Java HTTP 组件库选型看这篇就够了

最近项目需要使用 Java 重度调用 HTTP API 接口,于是想着封装一个团队公用的 HTTP client lib. 这个库需要支持以下特性: 连接池管理,包括连接创建和超时、空闲连接数控制、每个 host 的连...

Java面经
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部